2

我在一个类中有一个 accept_nested_attributes_for 的 :reject_if 案例,但如果某个值为 0,我也希望能够销毁已经创建的对象。

似乎没有 :destroy_if 选项。有没有标准的方法来控制这样的情况?

4

2 回答 2

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
于 2013-03-18T22:59:25.457 回答
0

A nested model is destroyed when its attribute _destroy is set (1 or true)

A solution is to overload your_nested_model_attributes= to set the _destroy attribute to 1

于 2013-03-18T15:46:18.133 回答