我在与一个地方的关系belongs_to的不断结束了被零模型on Rails应用程序在我的Ruby的一个问题。

鉴于以下型号:

 class Chassis < ActiveRecord::Base
   belongs_to :model
   belongs_to :chassis_size
 end

 class Model < ActiveRecord::Base
    has_many :chassis
 end

 class ChassisSize < ActiveRecord::Base
    has_many :chassis
 end

现在,我希望在我的底盘索引视图我会看到两个模型,并给出了chassis_size数据:

 <% @chassis.each do |chassis| %>
    <%= chassis.id %><br />
    <%= chassis.model.name %><br />
    <%= chassis.chassis_size.size %><br />
 <% end %>

但是我得到一个错误,该chassis_size.size是nil:

 You have a nil object when you didn't expect it!
 You might have expected an instance of Array.
 The error occurred while evaluating nil.size    

寻找在数据库中的数据,一切似乎是正确的。

我不知道为什么样板工程,但chassis_size没有。我在想什么?为什么不chassis_size数据出现负载?

有帮助吗?

解决方案

时的大小在chassis_sizes表中的列?

如果是这样,这是在红宝石的保留字,因为它是用于返回的数组的长度的方法。

是否每个机箱有chassis_size?尝试这样:

<% @chassis.each do |chassis| %>
    <%= chassis.id %><br />
    <%= chassis.model.name %><br />
    <% if chassis.chassis_size %>
        <%= chassis.chassis_size.description %>
    <% else %>
        No chassis_size exists for this chassis
    <% end %><br />
 <% end %>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top