Ich bin brandneu für Ruby on Rails. Ich verwende einen ActiveAdmin und ich habe ein Problem beim Erstellen eines AdminUser
ActiveModel :: ForbiddenAttributesError in Admin :: AdminUsersController # create ActiveModel :: ForbiddenAttributesError
Anfrage
Parameter:
{"utf8" = & gt; "✓",
"authenticity_token" = & gt; "nvV ++ 6GNTdA / nDzw1iJ6Ii84pZPcv2mzg0PK2Cg9Ag0=",
"admin_user" = & gt; {"email" = & gt; "[email protected]"},
"commit" = & gt; "Erstelle Admin-Benutzer"} *
Rails 4.1.0
activeadmin 1.0.0
Ruby 2.1
app / admin / admin_user.rb
%Vor%app / models / admin_user.rb
%Vor%Gemfile
%Vor%config / environments / development.rb
%Vor% Rails 4
verwendet starke Parameter, die die Whitelist des Attributs vom Modell zum Controller verschieben. Es ist notwendig, die Attribute anzugeben, die Sie in der Datenbank speichern möchten. Sie haben die Attribute in Ihrem Code nicht zugelassen, weshalb Sie ActiveModel::ForbiddenAttributesError
erhalten.
Siehe die Dokumentation von ActiveAdmin: Einrichten von starken Parametern
Sie können starke Parameter folgendermaßen einrichten, indem Sie die permit_params
-Methode verwenden, die eine Methode namens permitted_params
erstellt. Verwenden Sie diese Methode beim Überschreiben von create
oder update
actions:
Ersetzen Sie :attr1
, :attr2
usw. durch die tatsächlichen Attributnamen, die Sie auf die weiße Liste setzen möchten. Zum Beispiel: :email
Was Sie sehen, ist eine Sicherheitsfunktion neuerer Versionen von Rails. Sie müssen eine Whitelist für die Attribute erstellen, die von den vom Benutzer eingegebenen Parametern aktualisiert werden können. Andernfalls müssen Sie jeden Wert manuell festlegen.
Hier ist ein Beispiel für das Whitelisting bestimmter Params:
%Vor%Siehe die ActiveAdmin-Dokumente zum Thema: Ссылка
Tags und Links ruby ruby-on-rails-4 activeadmin