我正在使用带有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]
它的工作原理.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。