1

我的控制器中有这一行:

user = User.any_of({:user_name => login}, {:email => login})

if user.nil?
  # ...
elsif user.legacy_password.nil? 

它会产生这个错误:

undefined method `legacy_password' for []:Array

为什么会发生这种情况?用户对象应该是nil. 至少调试器是这么说的。

4

2 回答 2

3

我假设您的any_of方法返回结果数组,而不是单个结果。您可能想要添加.first到它的末尾,这将为您提供一条用户记录,或者nil如果any_of返回一个空数组。

user = User.any_of({:user_name => login},{:email => login}).first
于 2012-04-18T16:46:43.757 回答
1

看起来您正在使用 mongoid ( #any_of) 并且它正在返回一个数组。

该错误是因为您正在调用legacy_password一个数组,但我认为它是在 User 模型上定义的。

于 2012-04-18T16:48:07.757 回答