Ich habe einen Controller für Walkers mit der folgenden Aktion:Formular Parameter unpermitted von in Schienen-app
def update
if !current_user
redirect_to "/walkers"
end
walker = Walker.find(params[:id])
walker.update(walker_params)
walker.save
redirect_to admin_path
end
Es gibt auch eine private Methode ist:
def walker_params
params.require(:walker).permit(:id, :fname, :lname, :role, :active, :role, :avatar)
end
In meinen Ressourcen Ich habe:
resources :walkers
Dann habe ich ein Formular mit dem folgenden Erb.
<%= form_for :walker, url: "/walkers/#{w.id}", method: "put" do |f| %>
<%= f.hidden_field active: false %>
<%= f.submit "Deactivate", class: "font-color-warning mdl-button" %>
<% end %>
Mein Schienen Server gibt mir die folgende Fehlermeldung:
Unpermitted parameter: {:active=>false}
Die Parameter sind gesendet werden:
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"7vkuiaZG32x0EPr9IR9VvgURTQ7uniZH/7IPfMYdvb3AIGq8Psd+o9ykfs6qMKcozXYm08BKJ0/M3s5Q2DwiGg==",
"walker"=>{"{:active=>false}"=>""},
"commit"=>"Deactivate",
"id"=>"1"}
Meine Erwartung war, dass ich anzog falsch auf dem: aktiv Parameter das Walker-Objekt, das bei PUT 'walkers/w.id' gefunden wurde. Meine Parameter zeigen, dass meine Erwartungen nicht korrekt sind.
Ich möchte eine Lösung für mein Problem. Idealerweise verstehe ich, warum meine Parameter mit walker"=>{"{:active=>false}"=>""}
gesendet werden, wenn mein Ziel ist, Parameter mit walker"=>{:active=>false}
zu übermitteln.
Ich habe kein @walker-Objekt zum Referenzieren, da ich mit | w | durchschlinge.
Diese Antwort mein Problem löst. Vielen Dank. – aisflat439
Würdest du bitte akzeptieren, da es dein Problem löst. –
Ja, ich muss noch eine Minute warten, heißt es. – aisflat439