rails-simple-search 是一个 Ruby gem. 它可以帮助你为你的网站快速实现搜索/过滤功能。在输出结果中它还可以帮助分页。如果你不需要一个全文搜索的功能,这个 gem 很可能就是你需要的。
以前,我时常需要实现一个页面来显示从一个数据库表里面根据条件搜索出来的纪录。在我实现这个 gem 之前,我通常是这样实现的:
在 view 里面使用 <%= form_tag %> 来构造一个 form。用<%= text_field_tag %> 或其他的 html input 来输入搜索条件
在 controller 里面,把搜索条件从 params 里面拿出来,放到 instance variable 里面。这些 instance variables 在 view 里面可以用到。
构造 SQL 的 WHERE 子句。根据搜索条件的不同,有时还需要用到 JOIN。
用上面构造的 WHERE 和 JOIN 子句,运行 find(:all, :conditions => [xxxxxx], :joins => “yyyyyy”)
在使用上面的 pattern 多次以后,我意识到我可以把这个 pattern 做到一个 library 里面。以上就是 rails-simple-search 的由来。
现在,实现这样功能的一个页面就非常简单了。你可以从下面的例子里看出这是多么的简单。。。
更多内容在这里: https://github.com/yzhanginwa/rails-simple-search
有一个使用本 gem 的例子 RoR 项目在这里:https://github.com/yzhanginwa/demo_app_for_rails_simple_search