accepts_nested_attributes_for:destroy_if

时间:2013-03-18 15:43:57

标签: ruby-on-rails

对于类中的accepts_nested_attributes_for,我有一个:reject_if case,但是如果某个值为0,我还希望能够销毁已创建的对象。

似乎没有:destroy_if选项。是否有一种标准的方法来控制这样的案例?

2 个答案:

答案 0 :(得分:2)

我找到了使用before_save的解决方案。这看起来效果很好。

before_save :mark_entries_for_removal

def mark_entries_for_removal
  entries.each do |entry|
    entry.mark_for_destruction if entry.hours_spent <= 0
  end
end

答案 1 :(得分:0)

当设置了属性_destroy(1或true)时,销毁嵌套模型

解决方案是重载your_nested_model_attributes=以将_destroy属性设置为1