Parent:
has_many :children, dependent: :destroy
Child
belongs_to :parent
new_arr = [ 1 ,3 , 5]
parent.children = parent.children.where(id: new_arr) #剔除掉id不等于1,3,5的元素
现在的问题是,在做 collection= 操作后,rails 自动 saving 且 commit 了这个事务。 但是,我希望它不 commit,并且不使用 parent.transaction do ... end 显式事务控制的代码。
相关问题: http://stackoverflow.com/questions/22927284/how-to-delete-some-associations-from-an-activerecord-object-without-saving ---- 这个帖子中用 reject!好像没效果 https://github.com/rails/rails/issues/6994 --这个 issue 用 before_save 处理不知道是否可行
有什么好的办法吗?