Location モデルに属する Report モデルがあります。ネストされたパーシャル内のレポート オブジェクトにアクセスすると、親パーシャルとパーシャルを含む初期ビューで目的の値を取得すると、report.location の nil 値が取得されます。
例えば、
reports/index アクションのビューでは、@reports 配列内の個々の要素に関連する場所を参照して、目的の値を取得できます。
@reports[0].location.name # Works
このビューから、パーシャルをレンダリングします。
render :partial => "reports/reports_table", :locals => { :reports => @reports }
reports_table パーシャル内でも、レポートの配列の個々の要素の場所を参照して、could 値を取得できます。
reports[0].location.name # Works
このビューから、ローカル レポート配列の個々の要素ごとにパーシャルをレンダリングします。
reports.each do |report|
render :partial => "reports/report_display_row", :locals => { :report => report }
end
しかし、この第 2 レベルの部分 (report_display_row) 内では、個々のレポートごとに関連付けられた場所の nil 値を取得します。
report.location.name # undefined method `name' for nil:NilClass
私はバリエーションを試してみましたが、試したことに関係なく、Report のインスタンスに関連付けられたこのネストされた部分オブジェクトは常に nil のようです。