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}%"
    )
  }
它很可能是在执行sql
LIKE
操作符,但是,它不是:

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的操作符。看到和