Paper_trail with accepts_nested_attributes_for

时间:2011-06-15 00:02:06

标签: ruby-on-rails-3 undo-redo

我有一个rails应用程序,其中包含文章,用户可以将链接和评论添加为嵌套属性。

我在paper_trail https://github.com/airblade/paper_trail/文档中看到,这个gem没有涵盖。我如何设置撤消功能,以便在用户单击撤消时恢复/更新嵌套属性或has_many关联?

1 个答案:

答案 0 :(得分:0)

我认为如果你将一个“破坏”帖子挂钩到撤消按钮,它将至少删除链接,如果他们点击撤消。基本上,您使用特殊的_destroy密钥传递哈希,它将删除嵌套的模型记录。

来自Rails 3文档here

class Member < ActiveRecord::Base
   has_one :avatar
   accepts_nested_attributes_for :avatar, :allow_destroy => true
end

现在,当您将_destroy键添加到属性哈希值时,其值为true,您将销毁关联的模型:

member.avatar_attributes = { :id => '2', :_destroy => '1' }
member.avatar.marked_for_destruction? # => true
member.save
member.reload.avatar # => nil