2014-11-06 51 views
1

所以我有一個基本的添加編輯刪除應用程序與記錄和搜索功能。到目前爲止,我可以通過屬性':title'進行搜索,並希望按':price'進行搜索,但實際上無法弄清楚如何在沒有寶石的情況下實現這一點。所以模糊搜索有兩個可搜索的屬性。實現沒有Gem的基本模糊搜索SQLite

我覺得好像它真的很簡單...

下面是搜索控制器代碼:

def search 
    @products = Product.fuzzy_search(params[:search_string]) 
    if @products.empty? 
    @products = Product.all.order :title 
    end 
    render :action => "index" 
    end 

(道歉壞縮進這裏的the full controllermodel implementing fuzzy_search

+1

您已經定義了'fuzzy_search'功能都自己 - 爲什麼不改變呢?而且,控制器如何比實現它的模型更相關? – yerforkferchips 2014-11-06 19:28:19

+0

我完全忘了模型是代碼的地方:/ – Koxzi 2014-11-06 19:52:41

回答

2

。對於您自己輸入模糊搜索方法的代碼會更有幫助:

def self.fuzzy_search(search_string) 
     search_string = "%" + search_string + "%" 
     self.where("title LIKE ?", search_string) 
    end 

除非我誤解你,爲什麼你能不能只是這樣做:

def self.fuzzy_search(search_string) 
     search_string = "%" + search_string + "%" 
     self.where("title LIKE ? or price LIKE ?", search_string, search_string) 
    end 
+0

這似乎很容易。我想 - 我知道 - 我正在反思它。 – Koxzi 2014-11-06 19:53:09