首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用MassAssignmentSecurity时attr_accessible出错

调用MassAssignmentSecurity时attr_accessible出错
EN

Stack Overflow用户
提问于 2013-02-22 18:09:58
回答 1查看 143关注 0票数 2

我和本教程一起跟踪,有一次,它告诉我

..。向用户模型中添加密码和password_confirmation属性.与我们到目前为止看到的其他属性不同,密码属性将是虚拟的--它们只会暂时存在于内存中,不会被保存到数据库中。

正如我们将在6.3.4节中看到的那样,这些虚拟属性是由has_secure_password自动实现的。

我的模型看起来是这样的:

代码语言:javascript
复制
class User < ActiveRecord::Base
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  has_secure_password
  attr_accessible :email, :is_admin, :name, :password, :password_confirmation
  validates :name, presence: true, uniqueness: true
  validates :password_digest, presence: true
  validates :password, presence: true, length: { minimum: 6 }
  validates :password_confirmation, presence: true
  validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}, uniqueness: true
end

所以,现在,当我试图创建一个新的用户;

代码语言:javascript
复制
User.create(name: "Foo Bar", email: "foo@bar.net", password: "foobar", password_confirmation: "foobar")

我得到以下错误:

代码语言:javascript
复制
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: password, password_confirmation

为什么?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-27 18:09:13

这些问题似乎在数据库中丢失了密码和password_confirmation列。

根据注释,重新迁移和重新启动服务器将解决这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15030548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档