我见过以下示例,但query: "%#{query}%"
是什么意思?
scope :by_query, ->(query, ...){
joins(...).
where(... OR
... ,
query: "%#{query}%"
)
}
答案 0 :(得分:1)
可能假设正在执行sql LIKE
运算符,但是,它不是:
query = 'something'
User.where(query: "%#{query}%").to_sql
# => SELECT "users".* FROM "users"
# WHERE "users"."query" = '%something%'
它只是使用Active Record查询接口的hash conditions功能来精确查找等于值%#{query}%
的值。如果它应该进行LIKE
查询,则需要执行以下操作:
User.where("query LIKE ?", "%#{query}%").to_sql
# SELECT "users".* FROM "users"
# WHERE (query LIKE '%something%')