新手问题 where 语句 为什么没起作用

tubagesqb · 2014年10月24日 · 最后由 stargwq 回复于 2014年10月25日 · 2000 次阅读

@houseinfos = Houseinfo.where("rentway like ?", '整租')

用 Houseinfo.where("rentway like ?", '整租').to_sql 看看生成了什么上去了,就知道什么问题了

#1 楼 @TsingHan "SELECT \"houseinfos\".* FROM \"houseinfos\" WHERE (rentway like '整租')" 生成的是这句
我是这样存的 params[:houseinfo][:rentway] = "整租" 没看出问题来,指点一下

#2 楼 @tubagesqb 你这个 rentway 字段里面存的是啥?

#3 楼 @TsingHan 租房方式 string 型的

#4 楼 @tubagesqb 存的是什么内容?

#6 楼 @tubagesqb 你把你生成的 sql 放到数据库命令行里面执行试试,正常不

#7 楼 @TsingHan 不对,我自己再找找吧,谢谢了

Houseinfo.where("rentway like ?", "%整租%") 百分号

同 9 楼,加了百分号才能模糊匹配。

用正则匹配 类似:conditions.merge!(title: Regexp.new("/#{params[:title]}/")) if params[:title].present?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号