0

我有用户:

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 列。

4

1 回答 1

1

怎么样

User.first.user_artists.join(:artist).where('artist.itunes_id = ?', 1000).destroy_all 
于 2012-11-18T19:52:50.083 回答