以下是我目前的型号......
class Artist < ApplicationRecord
has_many :albums
has_many :follows
has_many :users, -> { uniq }, through: :follows
end
class Album < ApplicationRecord
belongs_to :artist
end
class Follow < ApplicationRecord
belongs_to :artist
belongs_to :user
end
class User < ApplicationRecord
has_many :follows
has_many :artists, -> { uniq }, through: :follows
end
我希望能够为用户获取所有Albums
。
我可以轻松地获得艺术家(@user.artists
),但我遇到的是这些艺术家的所有专辑。
Artists
通过Users
模式与Follows
相关联。
很想能够做@users.albums
或@users.artists.albums
。
答案 0 :(得分:1)
您有user has_many :artists
和artist has_many :albums
只需在has_many
模型中使用User
album :through artists
关联
class User < ApplicationRecord
has_many :follows
has_many :artists, -> { uniq }, through: :follows
has_many :album, through: :artists
end
现在您可以使用@user.albums