なぜ私はRailsの中にbelongs_toの関係のためにnilを取得していますか?
-
24-09-2019 - |
質問
私はbelongs_toの関係があることnilを終わる保つモデルと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 %>
所属していません StackOverflow