我是相當新的,並且在Rails中搜索數據庫。我有一個模型和數據庫,其中包含'name'屬性下的名稱列表。我希望能夠將搜索關鍵字輸入到單個搜索字段中,並且此輸入可以是一個字或兩個字或更多,具體取決於用戶需要的結果的具體情況。在單個搜索文本字段(RAILS)中搜索多個關鍵字
現在,我正在使用下面顯示的一些醜陋的東西,最多可以搜索3個搜索詞。有沒有辦法使'search_length'關鍵字具有這種動態性? find方法顯然是重複性的,但我不確定如何實現自動化,並且沒有在其他地方發現任何有用的建議。
def self.search(search)
if search
search_length = search.split.length
find(:all, :conditions => ['name LIKE ? AND name LIKE ? AND name LIKE ?',
"%#{search.split[0]}%", "%#{search.split[1]}%",
"%#{search.split[search_length1]}%"])
else
find(:all)
end
end
除此之外,愛好Rails迄今。
謝謝了, 利
謝謝我會玩弄。 – Lev 2011-06-13 23:10:31
我想我有第一部分,我們創造了正確數量的'名字像?'連接。最後一部分仍然很腥,我必須指定符合條件的關鍵字。我應該在那裏傳遞一個數組嗎? – Lev 2011-06-13 23:53:26
此代碼似乎適用於1個關鍵字,但分解更多。如果輸入兩個搜索條件,則會出現「錯誤的綁定變量數」錯誤。 – Lev 2011-06-14 00:29:24