小编Ale*_*noy的帖子

Rails 3.1.1 has_secure_password摘要不能为空

我一直在使用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

ruby-on-rails-3

9
推荐指数
2
解决办法
5095
查看次数

标签 统计

ruby-on-rails-3 ×1