0

我完全糊涂了。我正在学习 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
4

1 回答 1

1

不,如果没有puts user线路,它会。puts调用返回nil,它作为最后一个评估值从整个方法返回。

于 2013-08-27T19:35:33.130 回答