2013-07-30 109 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

相關問題