Rails undefined方法`category'为nil:NilClass

时间:2012-05-18 15:44:06

标签: ruby-on-rails haml

我有一个非常奇怪的问题,我有这个用户#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

我的模型确实有一个类别字符串属性。这是什么意思,我该如何解决?

4 个答案:

答案 0 :(得分:2)

<{1>}中的

ap.appliance.category

您可以尝试根据它是否为零来初始化/打印

答案 1 :(得分:2)

这意味着在此次通话中:

%td= ap.appliance.category

appliancenil。如果并非所有appliance_profiles都有appliance,那么您可以这样做:

%td= ap.appliance.try(:category)

如果所有appliance_profiles 都应 appliance,则必须检查数据库是否缺少数据。

答案 2 :(得分:2)

错误意味着调用“category”方法的变量为nil。在这种情况下,该行是

%td= ap.appliance.category

因此,ap.appliance解析为零。为什么,鉴于所提供的信息,我无法分辨。

答案 3 :(得分:0)

这可能意味着你的一个动作没有保存记录,因此返回nil。检查你的控制台。

相关问题