我有以下查询
Suburb.where("name ILIKE ?", '%#{"Camp Hill"}%').to_a
返回一个空数组。但是如果我跑
Suburb.where(name: "Camp Hill").to_a
我已经回复了一条记录。我不知道为什么这不起作用。我在postgresql中错过了ILIKE的细微差别功能吗?
答案 0 :(得分:2)
尝试以下方法:
Suburb.where("name ILIKE ?", '%Camp Hill%')
如果你想用一个变量来代替Camp Hill
那么你需要确保用双引号包装字符串以使插值工作而不是单引号,如下所示(注意括号双引号)您使用单引号的地方):
Suburb.where("name ILIKE ?", "%#{my_var}%")