激活has_secure_password

时间:2014-06-15 10:57:26

标签: ruby-on-rails ruby activerecord ruby-on-rails-4 bcrypt

我正在尝试在用户模型中激活rails has_secure_password。

我已经安装了brypt gem: gem' bcrypt','〜> 3.1.7'

我的模型如下

#Schema: User(name:string, password_digest:string)

class User < ActiveRecord::Base
  validates :name, presence: true, uniqueness: true
  has_secure_password
  validates_confirmation_of :password
end

当我在rails sandbox中运行以下命令时(使用rails 4.1.0):

user = User.new(name:'tbtb', password: 'tbtb', pasword_confirmation: 'tbtb')
ActiveRecord::UnknownAttributeError: unknown attribute: pasword_confirmation

user = User.new(name:'tbtb', password_digest: 'tbtb')
<User id: nil, name: "tbtb", password_digest: "tbtb", created_at: nil, updated_at: nil>

如果您没有使用has_secure_password,那么这是预期的。看起来好像没有激活has_secure_password并且ActiveRecord没有解释password_digest字段(http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html

似乎无法弄清楚我在这里做错了什么......

1 个答案:

答案 0 :(得分:0)

这是一个简单的拼写错误,将pasword_confirmation更改为password_confirmation

user = User.new(name:'tbtb', password: 'tbtb', password_confirmation: 'tbtb')