ruby-on-rails – ActiveAdmin:无法批量分配受保护的属性:email,password,password_confirmation

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – ActiveAdmin:无法批量分配受保护的属性:email,password,password_confirmation前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用带有Activeise身份验证的ActiveAdmin的Rails.我有AdminUser和User模型,因此User模型不必关心admin.但是,我无法在Admin页面中创建/编辑Adminuser或User FROM INSIDE.每次我尝试这样做,它都会给我留言
Can't mass-assign protected attributes: email,password,password_confirmation

这很奇怪,因为在User模型和AdminUser模型中,我已经拥有:

attr_accessible :email,:password,:password_confirmation

为了尝试其他方式,我去了rails控制台并尝试创建一个AdminUser,这一切都有效:

AdminUser.create(:email => 'asdf@admin2.com',:password => 'password',:password_confirmation => 'password')

这意味着只有管理员网页的创建失败.

我正在使用Devise进行身份验证. User和AdminUser模型都会发生错误.

对于password和password_confirmation,我在数据库中没有这些字段,但这是Devise默认的方式,它在数据库中从不拥有密码.

这是用户模型:

devise :database_authenticatable,:registerable,:rememberable,:recoverable,:trackable,:omniauthable,:omniauth_providers => [:facebook]
         ##,:validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email,:password_confirmation,:remember_me,:provider,:uid

  # attr_accessible :title,:body
    validates :email,:first_name,:last_name,presence: true
    validates :email,uniqueness: true

  has_many :devices
  has_many :posts

解决方法

我改变
attr_accessible :email,:uid

attr_accessible :email,:uid,:as => [:default,:admin]

它的工作原理.

猜你在找的Ruby相关文章