レール2.3.8では、最初に投稿とコメントと投票数の多いクエリを注文しようとしています。2列の合計に対するクエリの並べ替え
私はとPostモデルに新しいメソッドを追加しようとしました:
def interestingness
self.comments_count + self.votes_count
end
post_of_the_moment = find(:all, :conditions => ["submitted_at BETWEEN ? and ?", from, to],
:order => :interestingness,
:limit => 10
)
が、このコードは私の不明な列のエラーが発生します。
は、私はまた私にエラーを与えるものではありません。このpost_of_the_moment = find(:all, :conditions => ["submitted_at BETWEEN ? and ?", from, to],
:order => "SUM(comments_count+votes_count) DESC",
:limit => 10
)
これを試してみましたが、結果として0コメントと0票を持っているだけで1行を置きます。
私は間違っていますか? SUM()は、結果セットをグループ化したために:
おかげで、 アウグスト
最初の試行がうまくいかない理由は、「興味深い」がデータベースクエリの後にのみ計算されるためです。データベース自体はモデルを認識しません。テーブルで定義した列のみを認識します。 –