双向关联

时间:2012-09-18 11:07:14

标签: ruby-on-rails activerecord

我有两个简单关联的模型

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?

UPD:

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

UPD2: 哦,伙计们,这完全是我的错误。关联是正确的,但在Room类中定义了方法door并返回nil。没有它,一切正常。

1 个答案:

答案 0 :(得分:0)

您的代码

door.build_main_room.door 

将返回nil,因为您尚未保存构建的对象。要保存它,您需要使用

door.save

如果成功保存,那么您只能访问

door.main_room.door