0

単純な関連付けを持つ 2 つのモデルがあります

class Door 
  belongs_to :main_room, class_name: 'Room', inverse_of: :door
end 

####

class Room
  has_one :door, foreing_key: :main_room_id
end

理由を教えてください

door.build_main_room.door 

nilを返しますか?

更新:

door.build_main_room 
# =>  #<Room id: nil>

UPD2: ああ、みんな、それは完全に私のミスです。関連付けは正しいですが、Room クラスではメソッドdoorが定義されており、nil を返します。それがなければ、すべてうまくいきます。

4

1 に答える 1

0

あなたのコード

door.build_main_room.door 

ビルドされたオブジェクトを保存していないため、nil が返されます。それを保存するには、使用する必要があります

door.save

正常に保存された場合、次のようにアクセスできるのはあなただけです

door.main_room.door
于 2012-09-18T11:23:12.273 に答える