u19*_*964 6 ruby-on-rails mass-assignment devise activeadmin
我正在使用带有Activeise身份验证的ActiveAdmin的Rails.我有AdminUser和User模型,因此User模型不必关心admin.但是,我无法在Admin页面中创建/编辑Adminuser或User FROM INSIDE.每次我尝试这样做,它都会给我留言
Can't mass-assign protected attributes: email, password, password_confirmation
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为在User模型和AdminUser模型中,我已经拥有:
attr_accessible :email, :password, :password_confirmation
Run Code Online (Sandbox Code Playgroud)
为了尝试其他方式,我去了rails控制台并尝试创建一个AdminUser,这一切都有效:
AdminUser.create(:email => 'asdf@admin2.com',
:password => 'password', :password_confirmation => 'password')
Run Code Online (Sandbox Code Playgroud)
这意味着只有管理员网页的创建失败.
我正在使用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, :password_confirmation, :remember_me, :provider, :uid
# attr_accessible :title, :body
validates :email, :password, :first_name, :last_name,
presence: true
validates :email, uniqueness: true
has_many :devices
has_many :posts
Run Code Online (Sandbox Code Playgroud)
我改变
attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid
Run Code Online (Sandbox Code Playgroud)
至
attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :as => [:default, :admin]
Run Code Online (Sandbox Code Playgroud)
它的工作原理.
| 归档时间: |
|
| 查看次数: |
4015 次 |
| 最近记录: |