Ich habe drei Modelle ...Wie erhalten Sie die Attributwerte assoziierter Modelle in Sichten? Rails
models/resident.rb
class Resident < ActiveRecord::Base
belongs_to :hostel
has_many :leaves,dependent: :delete_all
has_one :user,dependent: :delete
end
models/user.rb
class User < ActiveRecord::Base
belongs_to :resident
end
models/leave.rb
class Leave < ActiveRecord::Base
belongs_to :resident
end
Wenn ich jetzt in Ansichten/leave/show.html.erb Ich erhalte diese den Wert des Urlaubs des Attributs zugreifen versuchen:
app/views /leaves/show.html.erb
<%= @leaves %>
In Browser heraus setzen:
#<Leave::ActiveRecord_Associations_CollectionProxy:0x007fde611850f0>
Mein Urlaubs-Controller wie folgt aussieht: leaves_controller.rb
class LeavesController < ApplicationController
def new
if logged_in?
@leave=Leave.new
else
flash[:info]="Please login to mark a leave"
redirect_to root_path
end
end
def show
@leaves= current_user.resident.leaves
end
def create
@leave=current_user.resident.leaves.create(leave_params)
if @leave.save
flash[:info] = "Leave successfully marked"
redirect_to new_leave_path
else
flash[:danger] = "Something wrong Happened try again"
redirect_to root_path
end
end
private
def leave_params
params.require(:leave).permit(:start_date,:end_date,:destination)
end
end
Bin ich richtig Blätter für Bewohner und damit verbundene Benutzer (create-Methode) Herstellung?
Ist show method korrekt?
und wie die Blätter des Benutzers bewerten der Blätter Ansichten in show.html.erb zuzuschreiben.
tun: '@ Blätter = current_user.resident.leaves.first' zu bekommen erstes Objekt oder Schleife durch' @ Blätter = current_user .resident.leaves' in show.html um alle Blätter anzuzeigen.Als '@ leaves = current_user.resident.leaves' wird eine Sammlung zurückgegeben, kein Objekt. –