0

通过基于http://railscasts.com/episodes/370-ransack的示例,我已经能够在我的 Bargain Stock Funds 网站 ( http://www.bargainstockfunds.com ) 上获得一个搜索表单。通过一些修改(产品->基金、产品->基金、产品->基金),我可以让它工作。

默认情况下,示例应用程序显示数据库表中的所有记录。对于我的特定应用程序,这不是一个可行的选择,因为它涵盖了 10,000 多个股票基金,并且将它们全部加载到页面上需要 FAR 太多时间。

仅当条目数小于给定数字时,如何让搜索表单显示条目?(我想的是 200 之类的。)如果资金数量太多,我想提供一条消息,例如“资金过多 - 请缩小搜索范围”。如果资金数量为 0,我想提供一条消息,例如“没有可用资金 - 请扩大您的搜索范围”。

4

2 回答 2

2

一页上的 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 报道 Kaminari 的时间比报道 will_paginate 的时间要晚。鉴于 Ruby on Rails 有多么挑剔,以及旧程序的细节有多么过时,我决定使用 Kaminari。

于 2013-08-09T19:55:15.007 回答