2

Allのリンクを含め、ページあたりの商品数を変更するためのリンクがあるSpreeサイトを作成しています。:per_pageクエリ文字列とヘルパーメソッドを介してパラメータを渡すことができるため、数値のリンクは簡単です。しかし、カミナリにパジネートしないように指示するか、カミナリを一時的に無効にするために、何を渡す必要があるのか​​わかりません。

SpreeまたはKaminariのいずれかでの解決策に満足しています。私は、それ以外の方法、:per_page = 1000または同様の数の方法を好みます。

  • スプリー0.70.3
  • カミナリ0.13.0
4

3 に答える 3

1

クエリ文字列パラメーターを渡して、コントローラーアクション内でフィルター処理できますか?例えば:

def show
  @products = unless params[:show_all]
    Product.page(params[:page]).per(params[:per_page])
  else
    Product.all
  end
end

これではSpreeでもKaminariでも解決策が得られないことはわかっていますが、問題を回避するのに役立つ可能性があります。ただし、ライブラリに別の方法が組み込まれているかどうかを知りたいです。

于 2012-06-06T06:49:03.167 に答える
1

未定義のメソッド'current_page'を処理するためにこれを試してください

=paginate @object if @object  && @object.try(:total_pages)
于 2016-08-01T11:14:08.100 に答える
0

kaminariがレコードのリストに追加するヘル​​パーメソッドが必要なので、これが私が行っている方法です。

params[:per] = Product.count if params[:per] == 'all'
Product.page(params[:page]).per(params[:per])

これにより、エラーが回避されundefined method 'current_page' for #<Array:0x007fc6157c16a8>ます。(基本的に、他の回答のコメントでの@Yoghの提案。)

于 2014-09-15T17:08:29.770 に答える