0

http://railscasts.com/episodes/370-ransackの例に基づいて、Bargain Stock Funds サイト ( http://www.bargainstockfunds.com ) で機能する検索フォームを取得できました。いくつかの変更 (製品 -> ファンド、製品 -> ファンド、製品 -> ファンド) を使用して、機能させることができます。

サンプル アプリは、デフォルトで、データベース テーブルのすべてのレコードを表示します。私の特定のアプリでは、これは実行可能なオプションではありません.10,000以上の株式資金をカバーしており、それらをすべてページにロードするには非常に時間がかかります.

エントリの数が特定の数よりも少ない場合にのみ、検索フォームにエントリを表示するにはどうすればよいですか? (200個くらいを考えています。) ファンド数が多すぎる場合は「ファンドが多すぎます 絞り込んでください」みたいなメッセージを出したいです。資金の数が 0 の場合は、「資金がありません。検索を広げてください」のようなメッセージを提供したいと考えています。

4

2 に答える 2

2

1 ページに 200 エントリというのはまだかなり静かです。それを制御するために will_paginate gem を使用することを期待しています。実装は非常に簡単です。

https://github.com/mislav/will_paginate/wiki

ransack を使用している場合は、このようなメソッドを呼び出すことができます。

def method
  if @search.result.count >= 200
    redirect_to root_path, notice: " Please narrow your search"
  elsif @search.result.count == 0
    redirect_to root_path, notice: "0 search results returned"
  else
   true
end

ロードが多すぎるのを防ぎたい場合は、@search.result で .limit(x) メソッドをいつでも呼び出すことができます。

それが役立つことを願っています。

于 2013-08-07T09:21:53.437 に答える
0

Kaminari gem を使用して結果をページ分割することで、検索フォームをすばやく機能させることができました。will_paginate を試しましたが、うまくいきませんでした。will_paginate gem を使い続けることもできたと思いますが、Railscast は will_paginate よりも最近、Kaminari を取り上げました。Ruby on Rails の扱いに注意が必要で、古い手順の詳細が古くなっている可能性があることを考慮して、Kaminari を使用することにしました。

于 2013-08-09T19:55:15.007 に答える