我一直在使用has_secure_password,我遇到了一个问题.我对UsersController中的创建操作的测试无法正常传递.所以我开始在控制台中玩游戏并意识到密码没有转换为has并保存在password_digest字段中.
当我尝试从控制台创建用户时,会发生以下情况.
irb(main):031:0> u = User.new(:email => "test1@test.com", :password => "test", :password_confirmation => "test")
=> #<User id: nil, email: "test1@test.com", password_digest: nil, created_at: nil, updated_at: nil>
irb(main):032:0> u.save
=> false
irb(main):033:0> u.errors
=> #<ActiveModel::Errors:0x00000100cde500 @base=#<User id: nil, email: "test1@test.com", password_digest: nil, created_at: nil, updated_at: nil>, @messages={:password_digest=>["can't be blank"]}>
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么.看起来似乎永远不会分配password_digest属性.如果我创建一个没有属性的用户对象并单独分配每个属性,我会得到相同的错误.
这是我的模特
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email, :password, :password_confirmation
end
Run Code Online (Sandbox Code Playgroud)
我在这里先向您的帮助表示感谢.
Alex Shenoy