Sql 如何将搜索字符串传递到rails范围
我已经看到了下面的示例,但是Sql 如何将搜索字符串传递到rails范围,sql,ruby-on-rails,ruby,scope,Sql,Ruby On Rails,Ruby,Scope,我已经看到了下面的示例,但是查询:“%#{query}%”是什么意思 scope :by_query, ->(query, ...){ joins(...). where(... OR ... , query: "%#{query}%" ) } 它很可能是在执行sqlLIKE操作符,但是,它不是: query = 'something' User.where(query: "%#{query}%").to_sql # =
查询:“%#{query}%”
是什么意思
scope :by_query, ->(query, ...){
joins(...).
where(... OR
... ,
query: "%#{query}%"
)
}
它很可能是在执行sqlLIKE
操作符,但是,它不是:
query = 'something'
User.where(query: "%#{query}%").to_sql
# => SELECT "users".* FROM "users"
# WHERE "users"."query" = '%something%'
它只是使用活动记录查询接口的功能来查找精确地等于值%#{query}%
的值。如果它应该执行类似于的查询,那么您需要执行以下操作:
User.where("query LIKE ?", "%#{query}%").to_sql
# SELECT "users".* FROM "users"
# WHERE (query LIKE '%something%')
它是一个类似SQL的操作符。看到和