关联情况下铁轨的超前铲方法

时间:2018-08-01 21:00:45

标签: ruby-on-rails ruby

根据the has_many documentation,“铲”方法collection<<(object, …)

  

通过将一个或多个对象的外键设置为集合的主键,将其添加到集合中。 请注意,除非父对象是新记录,否则此操作将立即触发更新SQL,而无需等待对父对象的保存或更新调用

如果要构造新记录而不将其保存到数据库中,请使用collection.build

  

返回一个集合类型的一个或多个新对象,这些对象已使用属性实例化并通过外键链接到该对象,但尚未保存。

使用Club和Member作为示例模型:

club = Club.find(params[:id])
club.members.build(member_attributes) # member is not saved
club.save # saves club and members

但如果...

我想使用<<创建关联,并且完全不触发SQL。在父对象是新记录的情况下,如何覆盖<<以使其表现得像方案?

0 个答案:

没有答案