我正在使用带有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]
它的工作原理.