2011-02-23 109 views
1

我有一個搜索框來搜索產品。每個產品都有一個標題並標有多個標籤。帶有acts_as_taggable_on的搜索表單(Rails 3)

我希望能夠通過標題或標籤搜索產品。換句話說,如果我有一種名爲「綠茶」的產品,另一種產品標記爲「綠色,紅色,藍色」,我在搜索框中輸入「綠色」,我希望這兩種產品都出現在搜索結果中。

我正在使用Rails 3,acts_as_taggable_on,Ruby 1.9.2。

回答

8

在你的控制器,顯示搜索結果可能看起來像這樣的行動(其中:q是從搜索框中輸入查詢字符串):

def results 
    @products = Product.where("title LIKE ?", "%#{params[:q]}%") \ 
    | Product.tagged_with("%#{params[:q]}%") 
end 
+0

完美。謝謝! – robzolkos 2011-02-24 05:16:13

+1

我不明白這個語法...你需要一個寶石或什麼? – Noz 2012-07-11 23:14:44

+0

這個依賴的唯一寶石是「充當標籤」,其中上面的查詢使用「tagged_with」方法。除此之外,Jamie正在演示如何使用Postgres內置的widcard功能! +1互聯網給你,先生傑米 – bkunzi01 2016-12-28 19:12:28