我在我的控制器这一行:
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
阵列上,但我相信它是在用户模型中定义。