0
現在のCocoon/Nestedフォームはうまく動作します。 しかし、私はこの動作を変更したいと思います:Rails + Cocoon:ネストしたリソースを破棄するのではなく更新する
メインモデル:
accepts_nested_attributes_for :varietals, :reject_if => lambda { |a| a[:grape_id].blank? && a[:id].blank? }, allow_destroy: true
代わりのallow_destroyと品種のオブジェクトを削除し、私はそれが破壊されたときに0に、そのステータスフィールドを更新します。
これを行うには、この行の関数を呼び出すことは可能ですか?代わりに品種モデルを更新すべきですか?
ような何か:
varietal.update_attributes(:status => 0)
1つのネストされたリソースが利用者によって削除されます。
ありがとうございました。
EDIT:データメインフォームの編集後のポストと助けるために、ネストされた品種の除去:
"varietals_attributes"=>{"0"=>{"grape_attributes"=>{"id"=>"168"}, "grape_id"=>"168", "percent"=>"20", "_destroy"=>"1", "id"=>"32709368-3496-47EA-A386-B1CCECA0BAEF"}},
varietalモデルにbefore_destroyなどのコールバックを追加すると、ステータスフィールドを変更できますが、その直後にオブジェクトが破棄されます。破壊後に更新されたデータを投稿するメッセージを編集しました。 –
'allow_destroy'を削除すると、オブジェクトは破棄されません。 – PoloniculMov
私はそれをしましたが、私のコールバックはvarietalsモデルでは呼び出されず(論理的に見えます)。 –