私はユーザーを持っています:
has_many :user_artists
has_many :artists, :through => :user_artists
ユーザーアーティスト:
belongs_to :artist
belongs_to :user
delegate :itunes_id, :to => :artist
アーティスト
has_many :user_artists
has_many :users, :through => :user_artists
attr_accessible :itunes_id
そのアーティストの特定の itunes_id に基づいて、特定のユーザーの user_artists を破棄したいと考えています。できますUser.first.user_artists.select {|ua| ua.itunes_id == 200823564}
が、ActiveRecord だけで行う方法はありますか? それともこれが最も効率的な方法ですか?
私は次のようなことを考えてUser.first.user_artists.where( :artist => {:itunes_id => 1000}).destroy_all
いましたが、SQL は user_artists に artist.itunes_id 列がないと文句を言います。