非常简单的问题——我如何搜索以ActiveRecord中某个字符串开头的所有记录.我在互联网上看到过各种各样使用类似于逐字逐句的SQL子句的地方——但据我所知,这不是"正确"的做法.
有没有"合适"的方式?
非常简单的问题——我如何搜索以ActiveRecord中某个字符串开头的所有记录.我在互联网上看到过各种各样使用类似于逐字逐句的SQL子句的地方——但据我所知,这不是"正确"的做法.
有没有"合适"的方式?
我强烈推荐Searchlogic插件.
那么就很简单了:
@search = Model.new_search(params[:search])
@search.condition.field_starts_with = "prefix"
@models = @search.all
与ActiveRecord一样,Searchlogic足够智能,可以在starts_with
条件下识别字段名.它还将处理所有分页.
这种方法将有助于防止SQL注入,而且与数据库无关.Searchlogic最终会根据您使用的数据库适配器以不同的方式处理搜索.您也不必编写任何SQL!
Searchlogic有很好的文档,而且易于使用(我本人对Ruby和Rails是新手).当我陷入困境时,插件的作者甚至在几个小时内直接回复了一封邮箱,帮助我解决问题.我对Searchlogic的推荐太多了...正如你所知.