に@foo
:has_manyアソシエーションを持つオブジェクトがあり、が破棄さbar
れる前に、がプロパティを持っている場合、foo
からのすべてのアソシエーションオブジェクトbar
も破棄されbar
ますtype = test
。
次のコードは機能しており、foo
オブジェクトは削除されますが、bars
まだ存在しています:(条件を使用しない場合、.where(type: "test)
すべてbars
が削除されます)
def destroy
@foo.bars.each{|b| b.update_attribute(:blub_id, nil)}
@foo.bars.where(type: "test").destroy_all
@foo.destroy
respond_to do |format|
format.html { redirect_to foo_url, notice: 'Foo was successfully destroyed.' }
format.json { head :no_content }
end
end
削除@foo.bars.each{|b| b.update_attribute(:blub_id, nil)}
してもう一度試してください。私はそのはずblub_id
、現在のバーがに属するのfooに示し外部キーです。
あなたが作る場合はblub_id
ヌルに等しい、とのレコードのblub_id
nullは何に属している、その後、@foo.bars.where(type: "test").destroy_all
これらのバーが含まれていません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加