我正在尝试在用户模型中激活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)
似乎无法弄清楚我在这里做错了什么......
答案 0 :(得分:0)
这是一个简单的拼写错误,将pasword_confirmation
更改为password_confirmation
:
user = User.new(name:'tbtb', password: 'tbtb', password_confirmation: 'tbtb')