我有以下模型,每个模型都是前一个模型的相关子代(为简洁起见,我排除了其他模型方法和声明):
class Course < ActiveRecord::Base
has_many :questions
scope :most_answered, joins(:questions).order('questions.answers_count DESC') #this is the query causing issues
end
class Question < ActiveRecord::Base
belongs_to :course, :counter_cache => true
has_many: :answers
end
class Answer < ActiveRecord::Base
belongs_to :question, :counter_cache => true
end
现在我只Course
填充了一个(所以当我在 console 运行时Course.all.count
,我得到1)。第一个Course
当前questions
填充了三个,但是当我运行时Course.most_answered.count
(如上所示,most_answered
我的范围方法是这样写的),我在控制台中得到3作为结果,这是不正确的。我已经尝试了查询的各种迭代,以及咨询Rails guide on queries,但似乎无法弄清楚我做错了什么。提前致谢。Course