以下是相关事实:
每个topic
has_many
comments
。
Comment
模型有一个名为scope
的{{1}},我们假装将其与多个列进行比较。
very_popular
def self.very_popular
# lots of cool stuff
end
模型的Topic
名为scope
,其中包含exciting
topics
very_popular
的所有comments
。
3号是我被困的地方。以下结果导致缺少方法异常,并且听起来很可怜,我不知道还有什么可以尝试!
def self.exciting
join(:comments).very_popular
end
如何重新使用very_popular
模型范围内Comment
模型的Topic
范围?
答案 0 :(得分:6)
您不能直接使用其他模型的范围。你可以做的是合并查询。
Topic.joins(:comments).merge(Comment.very_popular)
Ryan在这里解释得非常漂亮:http://railscasts.com/episodes/215-advanced-queries-in-rails-3