2011-01-09 26 views
0

我有一個屬於位置模型的報告模型。在嵌套部分中訪問報表對象時,當我在父部分以及包含部分的初始視圖中獲取所需值時,我會得到一個無值的report.location值。丟失Rails中嵌套部分的關聯

例如,

在用於報告/ index操作的視圖

,我可以指用於各個元件的相關位置以@reports陣列和得到所需的值:

@reports[0].location.name # Works 

從這個觀點,我渲染的部分:

render :partial => "reports/reports_table", :locals => { :reports => @reports } 

內reports_table部分,我仍然可以指的報告的陣列的單個元件的位置和得到一個可能值:

reports[0].location.name # Works 

在此視圖中,我渲染的部分本地報告陣列的每個元素:

reports.each do |report| 
    render :partial => "reports/report_display_row", :locals => { :report => report } 
end 

但該第二級分(report_display_row)我得到一個內

report.location.name # undefined method `name' for nil:NilClass 

我曾嘗試變化,也不管是什麼我已經試過,好像在這個嵌套部分對象相關聯的無線:針對每個單獨的報表相關位置零值我的報告實例總是零。

+0

你從report.class得到內的第二部分嵌套什麼? – mark 2011-01-09 18:53:05

回答

1

您正指望該報告始終有一個位置。現在至少有一個沒有。使用report.location.try(:name)來解決錯誤。

如果你想強制位置添加這個驗證您的報表模型:

validates :location, :presence => true