为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Arel和Rails中进行LIKE查询?

如何在Arel和Rails中进行LIKE查询?

杨魅力 2019-11-25 10:17:45
我想做类似的事情: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查询?PS奖金-我实际上是尝试扫描表上的两个字段,包括名称和描述,以查看查询是否匹配。那将如何工作?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

这是您在arel中执行类似查询的方式:


users = User.arel_table

User.where(users[:name].matches("%#{user_name}%"))

PS:


users = User.arel_table

query_string = "%#{params[query]}%"

param_matches_string =  ->(param){ 

  users[param].matches(query_string) 

User.where(param_matches_string.(:name)\

                       .or(param_matches_string.(:description)))


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 609 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信