2012-05-24 136 views
0

這是一個房地產搜索網站的位置搜索字段代碼:Rails/SQL - 如何搜索部分匹配並獲得結果?

scope :location, lambda{|l| where("city LIKE ? OR zip_code LIKE ? OR address LIKE ?", l, l, l)} 

但我必須把完整的城市名或者郵政編碼或地址,得到的結果,我怎麼修復它,以便我可以只搜索2或3個字母或數字,並獲得包含這些字母或數字的結果?我試圖像這樣包裝l:'%l%'但沒有運氣。

回答

4

試試這個:

scope :location, lambda{|l| where("city LIKE :l OR zip_code LIKE :l OR address LIKE :l", l: "%#{l}%")} 
+0

作品完美,感謝隊友 – railsy

+0

@railsy,順便說一下,你的範圍的名稱看起來並不體面。將它命名爲'with_location'並不是更具描述性嗎?時間檔案,並在幾個月內,你可能會與'位置'混淆。 – jdoe

相關問題