ActiveRecordで新しいを使用する場合、オプション:allow_destroy => true
を使用することができます。このオプションを設定すると、{"_delete"=>"1", "id"=>"..."}
のようなネストされた属性を含むハッシュがupdate_attributes
に渡されると、ネストされたオブジェクトが削除されます。オブジェクトを破棄するのではなく、アソシエーションを削除する場合allow_destroy => true
シンプルなセットアップ:
class Forum < ActiveRecord::Base
has_many :users
accepts_nested_attributes_for :users, :allow_destroy => true
end
class User < ActiveRecord::Base
belongs_to :forum
end
Forum.first.update_attributes("users_attributes"=>{"0"=>{"_delete"=>"1", "id"=>"42"}})
質問:私はどうすれば - ちょうど関連付けを削除する - 代わり"_delete" => "1"
時にネストされたオブジェクトを削除するの? (上のケースでは、フォーラムIDをユーザーに設定しないでください)
ボーナスの質問:アソシエーションを削除するときにネストされたオブジェクトのアトリビュートを変更したい場合はどうすればよいですか? (例えば、状態またはタイムスタンプを設定するなど)