【发布时间】:2011-05-24 18:05:56
【问题描述】:
我想做这样的事情:
SELECT * FROM USER WHERE NAME LIKE '%Smith%';
我在 Arel 的尝试:
# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql
然而,这变成了:
SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';
Arel 正确地包装了查询字符串 'Smith',但是因为这是一个 LIKE 语句,所以它不起作用。
如何在 Arel 中进行 LIKE 查询?
附:奖励——我实际上是在尝试扫描表上的两个字段,包括名称和描述,以查看查询是否有任何匹配项。这将如何运作?
【问题讨论】:
-
我更新了奖励的 arel 答案。
标签: ruby-on-rails activerecord arel