従業員を一覧表示し、自己結合を使用してマネージャーと direct_reports を表示するアプリケーションを作成しています。
私のモデルには次のものがあります。
has_many :direct_reports, :class_name => "Person", :foreign_key => "manager_id"
belongs_to :manager, :class_name => "Person"
私の見解では、名前 (fname と lame に分割) がリンクを構成する従業員のすべての direct_reports へのリンクを作成しようとしています。
現在、direct_reports に対する私の見解では、Rails ガイドが推奨する次のようなものがあります。
<%= @person.direct_reports %>
その結果、これが生成されます。
[#<Person id: 3674, fname: "Leland", lname: "Allison", phone: "8474020494", email:
"leland.allison@myco.com", ntid: "lalli", address: "3568 Sanders Rd.", city:
"Northbrook", state: "IL", zipcode: "60062", country: "USA", suite: nil, column:
nil, title: nil, department: nil, created_at: "2013-02-01 19:17:58", updated_at:
"2013-02-01 19:17:58", equipment: nil, capacity: nil, latitude: nil, longitude:
nil, manager: nil, direct_report: nil, manager_id: 3668>, #<Person id: 3685, fname:
"Rochelle", lname: "Baldwin", phone: "8474020338", email: "rochelle.baldwin@myco.com",
ntid: "rbald", address: "3412 Sanders Rd.", city: "Northbrook", state: "IL",
zipcode: "60062", country: "USA", suite: nil, column: nil, title: nil, department:
nil, created_at: "2013-02-01 19:17:58", updated_at: "2013-02-01 19:17:58", equipment:
nil, capacity: nil, latitude: nil, longitude: nil, manager: nil, direct_report: nil,
manager_id: 3668>, #<Person id: 3692, fname: "Tammy", lname: "Barnett", phone:
"8474020275", email: "tammy.barnett@myco.com", ntid: "tbarn", address: "3349
Sanders Rd.", city: "Northbrook", state: "IL", zipcode: "60062", country: "USA",
suite: nil, column: nil, title: nil, department: nil, created_at: "2013-02-01 19:17:58",
updated_at: "2013-02-01 19:17:58", equipment: nil, capacity: nil, latitude: nil,
longitude: nil, manager: nil, direct_report: nil, manager_id: 3668>]
したがって、明らかに各レコードのオブジェクト全体を取得していますが、これは必要以上のものです。
私は自分の見解に次のことを入れてみました:
<% @people.each do |person| %>
<%= link_to person.lname + ", " + person.fname, person %>
<% end %>
しかし、それは機能していません。"undefined method `each' for nil:NilClass" エラーが発生します。
何か案は?