如何制作ActiveRelation<<不要在数据库中隐式保留添加的条目?

时间:2011-05-18 17:03:50

标签: ruby-on-rails ruby database activerecord

如果我有两个具有给定关系的A和B类:

class A < AR::Base; has_many :bs; end
class B < AR::Base; belongs_to :a; end

执行时:

a=A.new
a.bs << B.new

a和插入Bs列表中的元素都不会保留。 但是,如果我们在调用new之后调用a.save:

a=A.new
a.save!
a.bs << B.new

新创建的B会立即保留。

如何避免这种隐含的保存行为?

1 个答案:

答案 0 :(得分:1)

简短的回答,你不能不幸。来自rails docs:

  

集合&lt;&lt;(object,...)

     

通过将其外键设置为集合的主键,将一个或多个对象添加到集合中。 请注意,此操作会立即触发update sql而不等待父对象上的保存或更新调用

斜体是我的重点。