[英]association through has_many and multiple belongs to
我有以下模型和协会:
class User < ActiveRecord::Base
has_and_belongs_to_many :songs
end
class Song < ActiveRecord::Base
has_and_belongs_to_many :users
belongs_to :album
delegate :artist, :to => :album, :allow_nil => true
end
class Album < ActiveRecord::Base
has_many :songs
belongs_to :artist
end
class Artist < ActiveRecord::Base
has_many :albums
has_many :songs, :through => :albums
end
我需要能够定期调用user.albums和user.artists。 是否是在用户和艺术家/专辑之间创建has_and_belongs_to_many关联的最有效选项?
似乎应该有一个更好的方法,但我还没有找到任何东西。
您可以在用户对象上使用has_many:albums,:through =>:歌曲。 Arel(AR)会自动为您创建连接,从而产生一个查询,并且只会获取与属于用户的歌曲相关的相册。 User对象上的艺术家也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.