我有一个非常奇怪的问题,我有这个用户#show view的文件:
%h1 My Appliances
.floatright= link_to "Add appliance", new_appliance_profile_path
%table
%tr
%th Category
%th Manufacturer
%th Model
%th Room
%th Hours On
%th Hours Sleeping
%th
- @user.appliance_profiles.each do |ap|
%tr{:class => cycle('list_line_odd', 'list_line_even')}
%td= ap.appliance.category
%td= ap.appliance.manufacturer
%td= ap.appliance.model
%td= ap.room.name
%td= ap.hours_on
%td= ap.hours_sleep
%td= link_to "edit", edit_appliance_profile_path(ap)
并收到错误:undefined method 'category' for nil:NilClass
我的模型确实有一个类别字符串属性。这是什么意思,我该如何解决?
答案 0 :(得分:2)
,ap.appliance.category
为
您可以尝试根据它是否为零来初始化/打印
答案 1 :(得分:2)
这意味着在此次通话中:
%td= ap.appliance.category
appliance
是nil
。如果并非所有appliance_profiles
都有appliance
,那么您可以这样做:
%td= ap.appliance.try(:category)
如果所有appliance_profiles
都应 appliance
,则必须检查数据库是否缺少数据。
答案 2 :(得分:2)
错误意味着调用“category”方法的变量为nil。在这种情况下,该行是
%td= ap.appliance.category
因此,ap.appliance
解析为零。为什么,鉴于所提供的信息,我无法分辨。
答案 3 :(得分:0)
这可能意味着你的一个动作没有保存记录,因此返回nil。检查你的控制台。