繁体   English   中英

搜索表单(Ransack gem)

[英]Search form (Ransack gem)

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

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

如果条目数小于给定数量,如何才能使搜索表单显示条目? (我想的是像200这样的东西。)如果资金数量太大,我想提供一条消息,说“太多资金 - 请缩小搜索范围”。 如果资金数量为0,我想提供一条消息,上面写着“没有可用资金 - 请扩大您的搜索范围”。

一个页面上的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)方法

希望有所帮助。

通过使用Kaminari gem对结果进行分页,我能够快速使用我的搜索表单。 我试过了will_paginate,但我无法让它为我工作。 我想我可能会坚持使用will_paginate宝石,但Railscast最近覆盖了Kaminari,而不是覆盖了will_paginate。 考虑到Ruby on Rails的挑剔程度以及旧程序的详细程度如何过时,我决定使用Kaminari。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM