Rails控制台无法通过类方法查找记录

时间:2013-08-27 19:33:05

标签: ruby-on-rails ruby ruby-on-rails-4 rails-console

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

1 个答案:

答案 0 :(得分:1)

没有。如果没有puts user行,那就是它。 puts调用返回nil,并将其作为最后一个评估值从整个方法返回。