クラスにaccepts_nested_attributes_forの:reject_ifケースがありますが、特定の値が0の場合にすでに作成されているオブジェクトを破棄できるようにもしたいと思います。
:destroy_ifオプションがないようです。このようなケースを制御する標準的な方法はありますか?
クラスにaccepts_nested_attributes_forの:reject_ifケースがありますが、特定の値が0の場合にすでに作成されているオブジェクトを破棄できるようにもしたいと思います。
:destroy_ifオプションがないようです。このようなケースを制御する標準的な方法はありますか?
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
ネストされたモデルは、その属性_destroy
が設定されると破棄されます(1またはtrue)
解決策は、属性をyour_nested_model_attributes=
に設定するためにオーバーロードすることです_destroy
1