私は Spree を使用しており、products/search コントローラー アクションでは Ransack を使用しています。Spree のドキュメントによると、Spree はページ サイズをカスタマイズする方法を提供していないため、アクション自体をカスタマイズして、Ransack を使用してページネーションを完全に無効にしようと考えました。Ransack は、結果をページ付けしない方法、または少なくともページ付けを大きくする方法をサポートしていますか?
これは、既存のコントローラー アクションのコードです。
@products = product_scope.ransack(params[:q]).result.page(params[:page])
その後に @products の型を入れると ActiveRecord::Relation です。私が入れたとき
@products = product_scope.ransack(params[:q]).result
これも ActiveRecord::Relation ですが、最初のケースでは、rabl テンプレートで使用されるメソッド「total_count」があり、2 番目のケースには存在しません。ransack のソースを調べましたが、.page が定義されている場所が見つかりません。Spree がプルする gem の 1 つで、ActiveRecord::Relation の class_eval に含まれているのではないかと考えています。
どこかで誰かがこの問題に直面し、解決策を考え出さなければなりません。私はその人を見つけることを期待しています:P
jd