2013-05-13 7 views
6

Ich habe ein Rails mit ActiveAdmin mit Devise for Authentication. Ich habe Adminbenutzer- und Benutzermodelle, damit das Benutzermodell sich nicht um admin kümmern muss. Ich kann jedoch weder Adminuser noch Benutzer von der Admin-Seite erstellen/bearbeiten. Jedes Mal, wenn ich so versuchen zu tun, es wird mir NachrichtActiveAdmin: Ich kann keine geschützten Attribute massenweise zuweisen: email, password, password_confirmation

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

das, weil im Inneren User-Modell und Adminuser Modelle ist seltsam, ich habe schon:

attr_accessible :email, :password, :password_confirmation 

es andere Art und Weise zu versuchen, ging ich auf die Schiene und Konsole versuchen, eine Adminuser erstellen und alle arbeiteten:

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

das bedeutet, nur die Schaffung von der Admin-Web-Seite ist fehlgeschlagen.

Ich benutze Devise für die Authentifizierung. Der Fehler tritt sowohl bei den Benutzer- als auch bei den AdminUser-Modellen auf.

Für Passwort und password_confirmation, habe ich nicht diese Felder in der Datenbank, aber das ist die Art, wie Devise ist standardmäßig, es nie Passwort in der Datenbank. Hier

ist das User-Modell:

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

vielleicht müssen Sie ": as =>: admin_user" zu Ihrem attr_accessible hinzufügen. Ich weiß es nicht genau für den Edelstein active_admin, aber wenn du zum Beispiel diesen Edelstein https://github.com/fesplugas/typus benutzt, musst du die Rolle des aktuellen Benutzers angeben mit: as =>: admin_user – Mattherick

+0

Ich denke, diese Frage wird Ihnen helfen, das zu verstehen: as => "your-role" besser..http: //stackoverflow.com/questions/6877853/rails-how-to-declare-attr-accessible-for-mutliple- Rollen ohne Duplizierung – Mattherick

+0

Wie sieht Ihr Admin-Erstellungsformular aus? Wenn Sie die Serverprotokolle auflisten, die Ihnen helfen können. –

Antwort

8

I

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

zu

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

und es funktioniert.

Verwandte Themen