2013-05-13 17 views
6

Ho un binario con ActiveAdmin con Devise per l'autenticazione. Ho i modelli AdminUser e User in modo che il modello User non debba preoccuparsi dell'amministratore. Tuttavia, non posso creare/modificare né Adminuser né User FROM INSIDE dalla pagina di amministrazione. Ogni volta che provo a fare in modo, che mi darà un messaggioActiveAdmin: impossibile assegnare in massa attributi protetti: email, password, password_confirmation

Can't mass-assign protected attributes: email, password, password_confirmation 

Questo è strano perché i modelli modello all'interno utente e AdminUser, ho già:

attr_accessible :email, :password, :password_confirmation 

di provarlo altro modo, sono andato a rotaie console e provare a creare un AdminUser e tutto si è risolto:

AdminUser.create(:email => '[email protected]', 
    :password => 'password', :password_confirmation => 'password') 

ciò significa che solo la creazione della pagina web Admin fallito.

Sto utilizzando Devise per l'autenticazione. L'errore si verifica con entrambi i modelli Utente e AdminUser.

Per password e password_confirmation, non ho quei campi nel database, ma è in questo modo che Devise è per impostazione predefinita, non ha mai password nel database.

Qui è il modello User:

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 
+2

forse devi aggiungere ": as =>: admin_user" al tuo attr_accessible. Non lo so esattezza per la gemma active_admin, ma per esempio se stai usando questa gemma https://github.com/fesplugas/typus devi specificare il ruolo dell'utente corrente con: as =>: admin_user – Mattherick

+0

Penso che questa domanda ti aiuterà a capire meglio: as => "tuo-ruolo" meglio..http: //stackoverflow.com/questions/6877853/rails-how-to-declare-attr-accessible-for-mutliple- ruoli-senza-duplicazione – Mattherick

+0

Come appare il modulo di creazione dell'amministratore? Se si elencano i registri del server che possono essere d'aiuto. –

risposta

8

cambio

attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid 

a

attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :as => [:default, :admin] 

e funziona.

Problemi correlati