我要做的是编写如下查询:
Foo.where("bar LIKE 'bam\_%'")
这个想法是,这会返回包含字符串的bar所有的行,以'bam_'开头,然后是不确定的长度。我已经在MySQL工作台中尝试了这个纯MySQL查询,它似乎按预期工作。但是,当我在RoR中执行此操作时,它似乎完全忽略了转义字符,并将下划线视为它真正的通配符。有没有办法在Rails中写这个,我可以在查询中包含下划线?感谢。
答案 0 :(得分:1)
反斜杠是Ruby字符串中的转义字符,因此\_
表示将_
视为文字。由于_
无论如何都被视为文字,因此除了将\
视为不存在之外,它什么都不做。实际在Ruby字符串给出的字符串中使用反斜杠的方法之一是使用另一个反斜杠(例如"bar LIKE 'bam\\_%'"
)来逃避它。