2012-07-27 30 views
0

我使用像句子在軌道上我知道這下句的作用有點問題:Rails中使用類似SQL

Brand.find(:all, :joins=>[:cars], :conditions=>["brandname LIKE ?","%ford%"]) 

但它周圍的任何方式,我可以給這樣的事情:

Brand.find(:all, :joins=>[:cars], :conditions=>["brandname LIKE '%ford%'"]) 

它因爲我已經有一個函數返回單個字符串的所有條件,但我需要支持字符串搜索,我真的不怎麼得到它的工作。

任何幫助將不勝感激。

回答

0

我不完全確定我明白你在說什麼。你是否試圖將變量傳入條件?

我會重新寫這個查詢只是一點點。

Brand.all.joins(:cars).where("brandname LIKE ?", "%#{some_variable}%") 

當然選擇所有可不好的表現,如果你得到了很多紀錄,所以你可能要考慮限制了或以某種方式分頁的結果。我會推薦guides。在這種情況下使用陣列會很好

Brand.all.joins(:cars).where("brandname LIKE ?", "%#{params[:brand_search]}%") 
+0

您一定要使用?因爲它會爲不安全的輸入提供一些保護。 – Micharch54 2012-07-27 17:01:20

+0

如果你想要匹配部分 – 2012-07-27 17:21:07

+0

好的呼叫本,你將需要稍微改變解決方案,需要「%#{params [:brand_search]}%」而不是params [:brand_search]。修復它在我的迴應。 – Micharch54 2012-07-27 20:03:51