rails 应用中不允许的表单参数
Form parameters unpermitted by in rails app
我有一个用于 Walkers 的控制器,具有以下操作:
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
还有一个私有方法:
def walker_params
params.require(:walker).permit(:id, :fname, :lname, :role, :active, :role, :avatar)
end
在我的资源中我有:
resources :walkers
然后我有一个带有以下 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 %>
我的 rails 服务器给我以下错误:
Unpermitted parameter: {:active=>false}
正在发送的参数是:
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"7vkuiaZG32x0EPr9IR9VvgURTQ7uniZH/7IPfMYdvb3AIGq8Psd+o9ykfs6qMKcozXYm08BKJ0/M3s5Q2DwiGg==",
"walker"=>{"{:active=>false}"=>""},
"commit"=>"Deactivate",
"id"=>"1"}
我的预期是我在 PUT 'walkers/w.id' 处找到的 walker 对象的 :active 参数上设置了 false。我的参数显示我的期望不正确。
我想要解决我的问题的方法。理想情况下,当我的目标是使用 walker"=>{:active=>false}
提交参数时,理解为什么我的参数使用 walker"=>{"{:active=>false}"=>""}
发送。
我没有要引用的@walker 对象,因为我正在使用|w| 进行循环。
改变
<%= f.hidden_field active: false %>
至
<%= f.hidden_field :active, value: false %>
我有一个用于 Walkers 的控制器,具有以下操作:
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
还有一个私有方法:
def walker_params
params.require(:walker).permit(:id, :fname, :lname, :role, :active, :role, :avatar)
end
在我的资源中我有:
resources :walkers
然后我有一个带有以下 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 %>
我的 rails 服务器给我以下错误:
Unpermitted parameter: {:active=>false}
正在发送的参数是:
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"7vkuiaZG32x0EPr9IR9VvgURTQ7uniZH/7IPfMYdvb3AIGq8Psd+o9ykfs6qMKcozXYm08BKJ0/M3s5Q2DwiGg==",
"walker"=>{"{:active=>false}"=>""},
"commit"=>"Deactivate",
"id"=>"1"}
我的预期是我在 PUT 'walkers/w.id' 处找到的 walker 对象的 :active 参数上设置了 false。我的参数显示我的期望不正确。
我想要解决我的问题的方法。理想情况下,当我的目标是使用 walker"=>{:active=>false}
提交参数时,理解为什么我的参数使用 walker"=>{"{:active=>false}"=>""}
发送。
我没有要引用的@walker 对象,因为我正在使用|w| 进行循环。
改变
<%= f.hidden_field active: false %>
至
<%= f.hidden_field :active, value: false %>