次のモデルがあり、それぞれが前のモデルの関連する子です (簡潔にするために、他のモデル メソッドと宣言を除外しました)。
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
入力されているのは 1 つだけです (したがって、 console で実行すると1Course.all.count
が得られます)。最初のものには現在 3 つが入力されていますが、実行すると(上記のように記述されたスコープ メソッドです)、コンソールに結果として3が表示されますが、これは正しくありません。クエリのさまざまな反復を試み、クエリに関するRails ガイドを調べましたが、何が間違っているのかわかりません。前もって感謝します。Course
questions
Course.most_answered.count
most_answered
Course