2017-08-13 16 views
0

私はちょうど私がsort_by total_likeメソッドを呼び出した後、私のカスタムメソッドのレールで降順に制限と順序を行うことをおもしろい。 これは、モデルの私のカスタムメソッドrails sort_byメソッドの降順とオフセットの制限

class Post < ApplicationRecord 
def total_like 
    self.likeposts.count 
end 
... more code ... 

であると私は降順でtotal_likeその種によってポストを呼び出すにしようとしたとき、これはスクリプトである

if [email protected]_entity 
      @entities=[] 
      @entity.where(paramshash).sort_by(&:total_like).reverse!.each.with_index do |entity, index| 
       if index >= params[:offset].to_i && index <= params[:offset].to_i + params[:limit].to_i 
       @entities << entity 
       end 
      end 
    render json: @entities 

誰もが、それは単にとdoes'nt必要に呼び出すことができます私のポストテーブルのすべてのレコード:(

+0

'post'と' likeposts'の間の関連がどのように定義されているのか、どのようにテーブルの名前が付けられているのかを投稿できますか? – spickermann

答えて

3

私はこのような何かがうまくいくかもしれないと思う:

Post 
    .joins(:likeposts) 
    .group('posts.id') 
    .order('COUNT(likeposts.id) DESC') 
    .offset(params[:offset]) 
    .limit(params[:limit]) 
+0

ありがとうございました:) – cahyowhy

関連する問題