我完全糊涂了。我正在学习Rails 4并按预期返回用户记录:
irb(main):002:0> User.all
但此会返回nil
irb(main):004:0> User.authenticate('asdfdsf', 'asdfdas')
这是模型中的类方法:
def self.authenticate( email, password )
user = User.all #( email: email )
puts user
# if user && (user.hashed_password == User.hash_with_salt( password, user.salt ) )
# return user
# else
# return false
# end
end
我错过了什么吗?难道这些都不应该返回同样的东西吗?为什么我不能从类方法中返回带有.find()或.where()的用户对象?
更新 这是我的用户表的架构:
create_table "users", force: true do |t|
t.string "first_name"
t.string "last_name"
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string "hashed_password"
t.string "salt"
end
答案 0 :(得分:1)
没有。如果没有puts user
行,那就是它。 puts
调用返回nil
,并将其作为最后一个评估值从整个方法返回。