我们刚刚将 Rails 应用程序从 3.0.13 更新到 3.2.6,在使用 mysql2 的 Active Record 查询接口的 .where 方法时遇到了一个小问题。
以前的工作方式:
client = Client.first
User.where(:client => client)
现在导致:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'users.client' in 'where 子句': SELECT
users
.* FROMusers
WHEREusers
。client
= 1
但是当显式使用外键的列名时,它似乎工作得很好:
client = Client.first
User.where(:client_id => client.id)
#=> Relation of users with the given client_id
关联没有改变(用户属于客户端,客户端有很多用户)。现在这似乎是每个此类协会的问题。
我们现在真的必须更改所有这些 where 查询以便它们使用 foreign_key 还是有其他方法?
导轨版本:
gem "rails", "~> 3.2.6"
mysql2版本:
gem "mysql2", "~> 0.3.11"