質問

私は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 %>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top