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 %>