我在Ruby on Rails应用程序中遇到问题,其中一个模型,其中belongs_to关系最终变为零。
鉴于以下模型:
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数据似乎没有加载?
答案 0 :(得分:0)
您的chassis_sizes表中的大小是一列吗?
如果是这样,这是ruby中的保留字,因为它是返回数组长度的方法。
每个机箱都有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 %>