will_paginateでsearchlogicを使用します
-
21-09-2019 - |
質問
編集私はそれを考え出したルックスのように - 。私はSearchlogicからall
を呼び出した後のpaginateを呼び出す必要がありました。
私は連絡先を検索し、(彼らは任意の検索条件を入力しない場合や、全ページ分割リスト)ページ番号付きリストを返すために、ユーザーを有効にするには、これらのツールの両方を使用しようとしています。しかし、私はチェーン一緒に適切な方法が不明だし、私がしようとしていることは私にエラーを与えている。
ここに私のコントローラは、次のとおりです。
class ContactsController < ApplicationController
def index
@search = Contact.search(params[:search]).paginate(:page => params[:page])
@contacts, @contacts_count = @search.all, @search.count
end
end
これは私にエラーUndefined method 'all' for WillPaginate
を与えます。ビューは言葉を持ってパスを探しているので、すべて削除すると、私にエラーを与える「接触」20回(例えばcontact_contact_contact..._path
)、おそらく「ページごとに」デフォルトは20ですので。
何が私が間違っているのでしょうか?私はすべてこのページに検索、発注や改ページを持っていると思います。
解決
私もこのことで混乱ました。次の操作を実行したい。
class ContactsController < ApplicationController
def index
@search = Contact.search(params[:search])
@contacts = @search.paginate(:page => params[:page])
end
end
あなたのビューで呼び出すだけ@ contacts.total_entriesを合計数を取得する(will_paginateが自動的に追加されていること)。
のようにすぐに呼び出すように、クエリをトリガー.paginate。あなたは、あなたがSearchlogicオブジェクトに@searchを設定していると考えていてもときに、あなたはそうではありません。あなたが呼び出すことができるというメソッド.ALLを持っていないWillPaginate配列に設定されます。
所属していません StackOverflow