[英]Rails 5 associated table data
在控制台內部,我可以通過執行以下操作來訪問相關表。
@eec = ExpenseExpenseCategory.last
puts @eec.expense.payee.first_name
-> Charles
但是在模板內部,如果我有某種程度的
<% @expense_expense_categories.each do |eec| %>
<tr>
<td><%= eec.amount %></td>
<td><%= eec.expense.payee.first_name %></td>
<\tr>
<% end %>
在我的報告控制器中設置的
def expense_expense_category_report
@expense_expense_categories = ExpenseExpenseCategory.all
respond_to do |format|
format.html {}
format.js {}
end
end
我收到此錯誤:ActionView :: Template :: Error(nil:NilClass的未定義方法“ payee”):
但是,如果我打電話給諸如
<td><%= eec.expense %></td>
我得到一個關系Expense:0x007f9c8ad91b28>,但是嘗試訪問它的屬性時遇到相同的錯誤
<td><%= eec.expense.date %></td>
我收到錯誤ActionView :: Template :: Error(nil:NilClass的未定義方法`date'):
如何確定可以像在控制台中那樣訪問方法?
您的一個或多個類別可能沒有與之相關的費用。 如果我已輸入數據,然后將關聯添加到模型,則有時會發生這種情況。
這意味着它是nil,並且您正在nil對象上調用日期,這會導致您的錯誤。
您可以通過運行以下測試代碼在控制台中進行檢查
ExpenseExpenseCategory.all.each do |eec|
if eec.expense.nil?
puts "Expense category #{eec.id} has no expense"
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.