如何通过关联向has_many添加无效记录:

时间:2016-11-01 14:01:37

标签: ruby-on-rails has-many

我有一个带房间的has_many-association的房屋模型。

house = House.find 1
dining_room = Room.find 1
living_room = Room.find 2

living_room不是有效的数据集。所以如果我把房间加到房子里

house << dining_room
house << living_room

没有添加living_room,因为它无效。

将现有记录添加到has_many-association时,如何跳过验证?

2 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情来将Room对象与House对象跳过验证相关联:

room.rb

中声明类似的内容
def associate_room_to_house!(house)
  self.house_id = house.id
  self.save(:validate => false)
end

然后在无效的房间对象上使用此方法。

house = House.find 1
living_room = Room.find 2

living_room.associate_room_to_house!(house)

答案 1 :(得分:1)

如果一个living_room属于一个房子,你可以简单地更新该客厅记录上的house_id以匹配你想要它的房子。