2011-07-27 6 views
0

I次のカスタムクエリがあります。は、カスタムのためのページネーションを照会レール

@initial_matches = Listing.find_by_sql(["SELECT * FROM listings WHERE industry = ? AND years <= ? AND degree_type <= ?", current_user.industry, current_user.years, @highest_degree])

結果をページ分割する方法を?より良い

+0

は、なぜあなたは 'find_by_sql'を使うのですか?ちょうどそれを使用せず、何の問題もありません。 – RocketR

+0

私は、そうでない場合は、上記のステートメントを実行する方法を見つけ出すことができませんでした...このためfind_by_sqlを使用しない方法上の任意の提案を? – Lisa

+0

ああ私はあなたがポストを参照してください - あなたをありがとう! – Lisa

答えて

3
Listing.where(:industry => current_user.industry).where(["years <= ?", current_user.years]).where(["degree_type <= ?", @highest_degree]).paginate 

きれいと短く見えるように、このためのスコープにこのロジックを動かします。

+0

+1の加算値です。 – apneadiving

2

Will_paginateは、基本配列で正常に動作します。お使いのコントローラで

@stuffs = %w(1 2 3 4 5 6 7 8 9 10).paginate(:page => params[:page], :per_page => 4) 

あなたのビューで:

<% @stuffs.each do |stuff| %> 
<%= stuff %> 
<% end %> 
<%= will_paginate @stuffs %> 
+0

+1。それは面白い。ありがとう、私はこれについて考えなかった。 – RocketR

関連する問題