我已經構建了一個基本的搜索功能,以便在我的數據庫中搜索3個字段。 搜索功能如下:在Rails中搜索,也搜索非連續詞
def self.search(search)
if search
@search_out = Array.new
@prod_out = find(:all, :conditions => ['name ILIKE ? or supplier_code ILIKE ? or ppd_code ILIKE ?', "%#{search}%", "%#{search}%", "%#{search}%"])
@prod_out.each do |prod|
prod.quantities.each do |quants|
@search_out << quants
end
end
return @search_out
else
nil
end
end
現在,它的工作都不錯,但我想補充一點,可以說,我有我的數據庫名稱項,其是「傑克和吉爾電影」和「傑克和選項珍妮特電影「 如果我在搜索字段中寫道:」傑克電影「,它會返回我這兩個條目。總體而言,能夠在搜索字段中搜索單詞並接收那些單詞在其中不連續的條目。 謝謝!
您可以使用Regexp.escape(搜索)來轉義輸入。 –
感謝您的輸入,我實際上使用PostgreSQL(因此ILIKE而不是LIKE),所以我會嘗試尋找regexing在那 – Yarneo