如何自动销毁accepts_nested_attributes_for的关联

时间:2019-02-02 08:41:08

标签: ruby-on-rails

我有一个User,其中有多个Posts

class User
  has_many :posts
  accepts_nested_attributes_for :posts, allow_destroy: true
end

class Post
  belongs_to :user
end

在控制器中,我将通过

进行更新
@user.update({ posts_attributes: [{uuid:'blah1'},{uuid:'blah2'}] })

我希望它可以自动销毁不存在的posts在每次更新。

@user.update({ posts_attributes: [{uuid:'blah1'},{uuid:'blah2'}] }) # create blah1, create blah2
@user.update({ posts_attributes: [{uuid:'blah2'},{uuid:'blah3'}] }) # delete blah1, create blah3

我该如何实现?

更新

我知道这可以通过

完成
@user.update({ posts_attributes: [{uuid:'blah1',:_destroy:true},{uuid:'blah2'},{uuid:'blah3'}] })

但是,从我的角度来看,这并不恰当。可以在内部模型中而不是外部模型中吗?

更新

我发现了这个link,但看起来很复杂。

0 个答案:

没有答案