我有一个与另一个相关的模型。如果原始模型将被保存,是否可以标记要删除的关联模型?在原始模型中,accepted_nested_attributes_for:ass_model被激活。
由于
答案 0 :(得分:1)
是的,这是可能的。您只需要将allow_destroy: true
选项添加到accepts_nested_attributes_for
并将_destroy: true
作为嵌套属性传递。
答案 1 :(得分:0)
简短回答:是
长答案(复制自http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html):
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
答案 2 :(得分:0)
如果您是在代码中执行此操作,而不是应用某些表单属性,则只需在模型上调用mark_for_destruction
。
member.avatar.mark_for_destruction
member.save # this deletes the avatar