真正简单的问题-如何在ActiveRecord中查找名称以某个字符串开头的所有记录。我在互联网上看到过各种各样的地方,使用逐字记录的LIKE SQL子句-但据我所知,这不是“正确的”方法。
有“正确的” Rails方法吗?
最佳答案
我强烈推荐Searchlogic插件。
然后就这么简单:
@search = Model.new_search(params[:search])
@search.condition.field_starts_with = "prefix"
@models = @search.all
Searchlogic像ActiveRecord一样足够聪明,可以选择
starts_with
条件中的字段名称。它还将处理所有分页。此方法将有助于防止SQL注入(inject),并且与数据库无关。 Searchlogic最终会根据您使用的数据库适配器对搜索进行不同的处理。您也不必编写任何SQL!
Searchlogic具有出色的文档,并且易于使用(我本人还是Ruby和Rails的新手)。当我陷入困境时,该插件的作者甚至在几小时内回复了一封直接电子邮件,帮助我解决了问题。我不能推荐足够的Searchlogic ...如您所知。
关于ruby-on-rails - ActiveRecord查找始于,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/251345/