2012-07-19 62 views
3

我正在使用位於此處的activerecord-reputation-system gem https://github.com/twitter/activerecord-reputation-system。在我的應用程序在使用從創業板將活動記錄 - 信譽系統查詢與分頁結合使用

ActiveRecord::Base.find_with_reputation(:reputation_name, :scope, :find_options)

方法,我想通過投票排序的職位。我也有足夠的帖子,我需要他們被分頁和搜索。然而無論何時我調用通常在我的後期集合上工作的頁面或搜索方法,我都會得到一個方法不存在的錯誤。我通常的收款電話看起來是這樣的

Post.all.text_search(params[:query]).order("created_at desc").page(params[:page]).per(20) 

我正在使用Kaminari進行分頁。有誰知道如何將find_with_reputation方法與其他查詢參數結合起來嗎?

回答

3

像一個正常的活動記錄查找方法:

Post.page(params[:page]).per(20).find_with_reputation(:reputation_name, :scope, :find_options) 

例如,如果您的文章有信譽votes

Post.page(params[:page]).per(20).find_with_reputation(:votes, :all, {:order => 'votes DESC, created_at DESC'}) 

這將找到的聲譽,創建日期排序的職位和分頁他們。

你也可以在你的模型爲取景器創建範圍:

def self.most_voted 
    find_with_reputation(:votes, :all, {:order => 'votes DESC'}) 
end 

然後使用:

Post.page(params[:page]).per(20).most_voted 
+1

謝謝,運作良好。不幸的是,在kaminari中使用activerecord-reputation-system似乎存在一個bug。在視圖中使用分頁幫助器方法時,未定義的方法會引發錯誤current_page – 2012-07-20 20:44:44

+0

這可以很好地工作。如果您已在模型上擁有投票屬性,請小心謹慎,因爲它會引用此屬性而不是活動記錄聲望的投票計數。 – Zach 2012-10-21 23:02:50

+0

@BinaryX - 你有沒有經歷過這個,特別是current_page的問題?我遇到了同樣的問題。雖然,我確實喜歡在查詢中添加一個範圍 - 現在它更具可讀性。 – creativetim 2013-08-28 21:31:03