我正在使用多态关联来论证我的Post
模型(它具有常见的帖子属性 - 标题、正文、日期等......)
这是我的模型,
class Post < ActiveRecord::Base
belongs_to :post_module, polymorphic: true
end
class Album < ActiveRecord::Base
has_one :post, as: :post_module
belongs_to :artist
end
class Artist < ActiveRecord::Base
has_many :albums
end
现在我有一个Post
模型,其Album
模型为:post_module
@post = Post.find(params[:id]) #its :post_module is an Album model
现在我想查询Post
具有与该帖子的专辑艺术家 ID 相同的艺术家 ID 的专辑模型的 s。
我可以查询Album
与该专辑具有相同艺术家 ID 的模型@post
……但这不是我想要的……
我想要一套Post
@albums = Album.where('albums.artist_id = "?"', @post.post_module.artist.id)
我怎样才能做到这一点?还是我在设计一个糟糕的模型关系?