簡體   English   中英

Ruby on Rails查詢

[英]Ruby on Rails Query

我正在嘗試為我正在構建的個人站點編寫查詢,用戶可以在其中發布並評價其他人的觀點。 關於對意見進行評級,我想讓用戶可以對意見進行向上或向下評級,然后我想分別顯示兩個頁面,分別按最高計數對評級為向上和向下的評級進行評級。

我的OpinionsRatings之間存在多對多關系。 它們通過稱為OpinionRatings的表連接在一起。

我為頁面寫了一個查詢,其中包含已被評價的意見,如下所示:

@topUpRatings = Rating.find(
  :all,
  :select => "opinion_ratings.opinion_id, opinion_ratings.account_id",
  :joins => "inner join opinion_ratings on ratings.id=opinion_ratings.rating_id",
  :conditions => ["ratings.up=?", true]
)

這將返回我將用於執行其他查詢以顯示意見和發布意見的用戶的每個意見ID和帳戶ID。

我遇到的問題是我無法找到一種方法,可以按升序次數對觀點進行排序(如果這很有意義)。

我知道有count(*)和group by,但是我似乎無法弄清楚如何將其集成到by by語句中。

我一直在考慮子查詢,但是這些子查詢只允許在select,from和where中使用。

任何幫助,將不勝感激。 如果您需要更多信息,請詢問。

@topUpRatings = Rating.find(
  :all,
  :select     => "opinion_ratings.opinion_id, count(opinion_ratings.account_id)",
  :joins      => "inner join opinion_ratings on ratings.id=opinion_ratings.rating_id",
  :conditions => ["ratings.up=?", true]
  :group_by   => "opinion_ratings.opinion_id"
  :order_by   => "count(opinion_ratings.account_id) DESC"
)

我不確定語法,但試圖將其理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM