铁轨3; ActiveRecord的; 哪里; 数据库中两列之间的NOT EQUAL条件比较

Jas*_*Kim 2 mysql ruby-on-rails ruby-on-rails-3

有没有办法比较数据库中的两列使用哪里

说,我有两列用户告诉:

  1. 出生城市
  2. favourite_city

我想要一个与city_of_birth不同的favourite_city用户列表.

我希望这样的东西能起作用.

@users = User.where(
  :city_of_birth != :favourite_city
).all
Run Code Online (Sandbox Code Playgroud)

运行此结果

undefined method `where' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

关于在哪里使用条件语句有类似的问题,但是没有一个是关于数据库本身中的列的条件语句.

提前感谢您的帮助.

rob*_*les 8

错误与常量用户未定义有关,但是要回答关于where方法的问题...

:city_of_birth != :favourite_city
Run Code Online (Sandbox Code Playgroud)

这将永远是真的,所以你实际上在这样的地方打电话......

User.where(true)
Run Code Online (Sandbox Code Playgroud)

这恐怕没什么用.我想你可能会对可以使用的哈希条件语法感到困惑.这对你也没有多大用处.你需要使用像这样的字符串条件......

User.where('users.city_of_birth != users. favourite_city')
Run Code Online (Sandbox Code Playgroud)

这实际上只是一小段SQL,最终将包含在发送到数据库的最终语句中.