首页 > 解决方案 > 在关联情况下覆盖铁轨中的铲子方法

问题描述

根据has_many 文档,“铲子”方法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。<<当父对象是新记录时,如何覆盖以使其行为类似于场景?

标签: ruby-on-railsruby

解决方案


推荐阅读