2011-04-12 62 views
1

我試圖做的是寫像下面這樣的查詢:轉義字符在Ruby on Rails的下劃線查詢

Foo.where("bar LIKE 'bam\_%'") 

的想法是,這將返回所有行,其中欄,其中包含一個字符串,以'bam_'開頭,然後是一個不確定的長度。我已經在MySQL工作臺中將它作爲一個純粹的MySQL查詢來使用,它似乎按預期工作。然而,當我在RoR中這樣做時,它似乎完全忽略了轉義字符,並像通配符那樣對待下劃線,它確實是。有沒有辦法在Rails中寫這個,我可以在查詢中包含下劃線?謝謝。

+1

您的示例包含語法錯誤。鑑於可能存在其他誤導,請您準確複製您的代碼? – 2011-04-12 01:08:20

+0

錯過了第二個雙引號。 – keybored 2011-04-12 01:15:03

回答

1

反斜槓是Ruby字符串中的轉義字符,因此\_意味着將_視爲文字。由於_無論如何都被視爲文字,因此除了將\視爲不存在之外,它什麼也不做。通過使用另一個反斜槓(例如"bar LIKE 'bam\\_%'"),可以在字符串中給出的字符串中實際具有反斜槓的方法之一。