我的控制器中有这一行:
user = User.any_of({:user_name => login}, {:email => login})
if user.nil?
# ...
elsif user.legacy_password.nil?
它会产生这个错误:
undefined method `legacy_password' for []:Array
为什么会发生这种情况?用户对象应该是nil
. 至少调试器是这么说的。
我的控制器中有这一行:
user = User.any_of({:user_name => login}, {:email => login})
if user.nil?
# ...
elsif user.legacy_password.nil?
它会产生这个错误:
undefined method `legacy_password' for []:Array
为什么会发生这种情况?用户对象应该是nil
. 至少调试器是这么说的。
我假设您的any_of
方法返回结果数组,而不是单个结果。您可能想要添加.first
到它的末尾,这将为您提供一条用户记录,或者nil
如果any_of
返回一个空数组。
user = User.any_of({:user_name => login},{:email => login}).first
看起来您正在使用 mongoid ( #any_of
) 并且它正在返回一个数组。
该错误是因为您正在调用legacy_password
一个数组,但我认为它是在 User 模型上定义的。