Rails 无法将 Hash 转换为 Integer

Rails can't convert Hash into Integer

设置后 current_user

def current_user
    @current_user ||= User.first(conditions: ['auth_token = :token or oauth_token = :token', { token: cookies[:auth_token] }]) if cookies[:auth_token]
  end

rails 提出

can't convert Hash into Integer

此方法在 rails 3 中有效,现在在 rails 5 中提出,有人可以就此问题提供提示吗?

如前所述:Rails' finder 语法发生了很大变化。

试试更像:

def current_user
  @current_user ||= User.where('auth_token = :token or oauth_token = :token', token: cookies[:auth_token]).first if cookies[:auth_token].present?
end

(注意:我没有测试此代码 - 修复错误是 reader 的练习)