0

コミュニティ、私はあなたの助けが必要です。非常に単純な問題ですが、何が問題なのか理解できません。

製品モデルと条件モデルの2つのモデルがあります。製品は1つの条件しか持てないため、2つの間に1対多の関連付けを設定しました。状態に固定レコードが含まれている(例:良い、悪い、破損している)

Product.rb

attr_accessible :condition_id
has_one :condition

Condition.rb

belongs_to :product

productsテーブルに外部キーcondition_idがあります。私の製品フォームでは、条件をループしてIDを設定します。

_form.html.erb(製品)

<%= f.select :condition_id, Condition.all.collect {|x| [x.name, x.id]}, {} %>

フォームを送信すると、コンソールでIDが設定されていることがわかります。しかし、指定された条件の値を取得できません。私の製品ショーページで、私は試します

<%= @product.condition.name %>

しかし、「nil:NilClassの未定義のメソッド`name'」エラーが発生します。これは、コンソールで試行するときにも発生します。

ここで何が欠けていますか?

皆さん、ありがとうございました!

4

1 に答える 1

0

申し訳ありませんが、私自身の質問に答えてください。協会を混ぜ合わせたようです。

そのため、 Product belongs_to :condition と Condition has_many :products は正常に機能します。

ただし、私にとっては Product has_one :condition と Condition belongs_to :product の方がはるかに冗長に聞こえます。

于 2012-09-12T08:16:18.157 に答える