メソッドを使用してhas_many
アソシエーションゲッターをオーバーライドしようとしています。関連するレコードを削除すると、元のファイルが削除されます.Railsでhas_many関連ゲッターを削除します。
私はカードのためにhas_many
の結合テーブルuser_cards
を介してアソシエーションを持っています。モデルにメソッドを追加しました...条件を完全にオーバーライドしようとしました。
has_many :cards, through: :user_cards, source: :canonical, source_type: 'Primary'
user_cards
は、多型であるので、関連の呼び出しからsource
とsource_type
があります。
getterは正常に見えます...
def cards
Card.where(id: user_cards.pluck(:card_id))
end
しかし...関連付けられたレコード(複数可)の簡単な削除は今、オリジナルを削除しているだけで非常に怖いですし、アプリを破壊することができ、テーブルのレコードを結合していません。
@card = Card.find(1)
@user.cards.delete(@card)
は、上記データベースから完全に@card
オブジェクトを削除します...私は@user.user_cards
レコードを削除することを期待しています。
私は、関連ゲッターをオーバーライドするのに慣れていません...助けてください。ありがとう。
が重複する可能性を持っていないことを確認してください[依存使用方法:レールに破壊します?](http://stackoverflow.com/questions/29560805/how-to- use-dependent-destroy-in-rails) – yoones