Rails 如何控制 Rails 进行查询操作时自动对数据库进行大小写转换?

GSTA_Yalo · 2018年04月08日 · 最后由 GSTA_Yalo 回复于 2018年04月08日 · 1359 次阅读

小弟最近在用 ruby on rails 做网页时,想做一个查询功能,结果出现这样的错误:

查了一下是进行数据库查询时默认把字段转化为小写,我的数据库表里面有很多类似于 resourceType 这样的包含大小写的字段,所以查询会失败,哪位大牛能帮忙解决一下这个问题? 给字段加上双引号可以解决这个问题,请问如何在查询时给字段加双引号?

Trap.where("resourceId LIKE ? AND resourceType LIKE ?", "%#{query1}%", "%#{query2}%")
huacnlee 回复

这种方法还是提示一样的错误:

字段没创建

yingce 回复

数据库里面字段都是有的,只是在进行查询的时候 rails 直接将大写转化为小写了,所以提示找不到字段。

... 我才看到上面的错误。我一直以为是 Like 的问题...

你为何不将数据库字段改为小写,或设置数据库忽略大小写? PostgreSQL 默认大小写敏感,不建议这么做。

另外,试试

Trap.where("`resourceId` LIKE ? AND `resourceType` LIKE ?", "%#{query1}%", "%#{query2}%")
Trap.where('"resourceId" LIKE ? AND "resourceType" LIKE ?', "%#{query1}%", "%#{query2}%")
huacnlee 回复

按照别人给的文档要求写的,字段必须那样命名。如何设置数据库忽略大小写?

7 楼 已删除

好的,谢谢啦。

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