2013-07-30 69 views
5

我试图从project_name中包含项目模型中的所有记录'福克斯'。我可以做一个活动记录的搜索和返回特定project_names,像“布朗福克斯:Rails的活动记录搜索 - 名称包含一个词

@projects = Project.where("project_name like ?", "Brown Fox") 

但是,如果我想返回所有包含“FOX”的名字,这不工作,除非完整的项目名称是'Fox':

@projects = Project.where("project_name like ?", "Fox") 

我该如何做一个搜索,返回名称中带有单词'Fox'的所有对象?

回答

8

尝试使用:

variable = "Fox" 
Project.where("project_name like ?", "%#{variable}%") 
+0

谢谢。这是做到了。 – JakeTy

0

您可以使用SQL %操作:

@projects = Project.where("project_name like ?", "%Fox%") 

请注意,如果你希望你的查询返回结果忽略了字的情况下,你可以使用PostgreSQL ilike代替like

+0

这也工作! – JakeTy

0

你尝试ransack

随着洗劫你可以这样做

@projects = Project.search(:project_name_cont => "Fox") 

如果你认为它是太多你需要什么。你可以使用%运营商,因为MurifoX说

+0

谢谢。我正在研究Ransack。 – JakeTy

相关问题