是否有某种方法可以使用 where 来比较数据库中的两列?
说,我有两列用户,告诉:
我想要一个与city_of_birth不同的favourite_city用户列表。
我希望这样的事情会奏效。
@users = User.where(
:city_of_birth != :favourite_city
).all
运行此结果
undefined method `where' for nil:NilClass
关于使用 where 的条件语句,有类似的问题,但没有一个是关于数据库本身中的列的条件语句。
提前感谢您的帮助。
答案 0 :(得分:8)
错误与未定义的常量用户有关,但是要回答关于where方法的问题...
:city_of_birth != :favourite_city
这将永远是真的,所以你实际上在这样的地方打电话......
User.where(true)
这恐怕没什么用。我想你可能会对可以使用的哈希条件语法感到困惑。这对你也没有多大用处。你需要使用像这样的字符串条件...
User.where('users.city_of_birth != users. favourite_city')
这实际上只是一小段SQL,最终将包含在发送到数据库的最终语句中。
答案 1 :(得分:3)
此错误表明未定义User
- 您的类名错误,或者未加载到您的环境中。