Aktive Modell Verboten Attribute error
wäre jemand in der Lage mir zu helfen zu verstehen, dieser Fehler. Ich bin versucht, erstellen ein Kontaktformular, in Schienen nach dem erstellen von web-apps tutorial. Ich folgte die Schritte zum generieren einer Nachricht Gerüst. Ich habe dann geändert, meine Routen. Weiter hieß es, das in den Nachrichten controller-Karte Aktion.
if @message.save
flash[:notice] = 'Thanks for Your Message'
format.html { redirect_to root_path }
Habe ich getan und ich erhalte die folgende Fehlermeldung
ActiveModel::ForbiddenAttributesError in MessagesController#erstellen
ActiveModel::ForbiddenAttributesError
Dies ist meine Botschaft-controller-Datei
class MessagesController < InheritedResources::Base
def show
if @message.save
flash[:notice] = 'Thanks for Your Message'
format.html { redirect_to root_path }
end
end
end
Meine Routen-Datei ist wie folgt
# devise_for :users
Ressourcen :Produkte
Ressourcen :Aufträge, nur: [:new, :erstellen]
#sagt rails-Bedürfnisse Produkt-id-Nummer
Ende
# get 'pages/payment'
get 'home/about'
get 'messages/new'
get 'seller' => "products#seller"
get 'sales' => "orders#sales"
get 'static_pages/productlanding'
get "content/veg"
get "content/fruit"
get "content/mix"
get 'subscriptions/new'
root 'static_pages#home'
InformationsquelleAutor Lilp | 2014-09-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum sind Sie speichern in der zeigen Aktion?
--
Params
Den
ForbiddenAttributes
Fehler ergibt sich aus derstrong_params
Funktionalität von Rails.Beim speichern von Daten, die Sie gemeint sind, übergeben Sie die Parameter durch, um Ihr Modell durch eine
strong_params
Methode. Dies wird meist mit dem folgenden setup:Dies ist, wie Ihr
controller
sollte wirklich gebaut werden. Dein Fehler ist, glaube ich, ist verursacht durch den Mangel an params zu Durchlaufen, um die Attribute in Ihrem Modell (daher Ihr Aufruf@save
was in dem Versuch, füllen Sie das Modell mit nicht-Daten).InformationsquelleAutor Richard Peck
Seltsam. Führen Sie die speichern-Methode im "show" - Methode der controller dafür verantwortlich, die Inhalte auf der separaten Seite.
Ersetzen Sie wie folgt:
Ja, denn @ - Nachricht innerhalb der "create" - Methode ist leer. Sollten Sie definieren '@Meldung "einige Daten wie diesen:" @message " = Nachricht.neue(:message_param)
und dies gilt auch in der create-Methode richtig?
Genau. Legen Sie es in den 'create' - Methode
danke, das macht jetzt mehr Sinn...ich habe versucht, meine eigene version und das, was Sie vorgeschlagen, und beide Male bekomme ich einen neuen Fehler
InformationsquelleAutor Eugene Tkachenko
ich es geschafft haben, Sortieren Sie diese mit dem folgenden! Vielen Dank für all die Hilfe, die
InformationsquelleAutor Lilp