【发布时间】:2016-08-05 22:00:42
【问题描述】:
ActionController::ParameterMissing in DuelersController#update
param is missing or the value is empty: dueler
如何修复错误,以便当用户单击“接受”或“拒绝”时,它会更改 :accept 的值
Dueler.last
id: 20,
user_id: 78,
challenge_id: 178,
duel_id: 13,
accept: nil>
表格
<%= form_for @dueler do |f| %>
<%= f.button "Accept", name: "button_action", value: "accept" %>
<%= f.button "Decline", name: "button_action", value: "decline" %>
<% end %>
duelers_controller.rb
def update
if params['button_action'] == 'accept'
@dueler.accept = 1
else
@dueler.accept = 0
end
@dueler.update(dueler_params)
redirect_to :back
end
def dueler_params
params.require(:dueler).permit(:id, :duel_id, :user_id, :challenge_id, :accept)
end
终端
Processing by DuelersController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"zn6Z9XuCQ2JahhtrZzFpEl3ENe+bcmOdDH/gz6VZ4p0mnRvgwpixdF2uA/sFgaQZFu2dEKR0DivQpJLqu96pxg==", "button_action"=>"accept", "id"=>"15"}
这是当我以:accept 作为check_mark 提交时参数的样子,不会引发任何错误:
Processing by DuelersController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"KWDac1I2rNRZd6oeCan0F7qlNY4c5K5vd6U988MJ6n3Bg1hm6yxewl5fso5rGTkc8YydcSPiw9mrfk/W3Y6hJg==", "dueler"=>{"accept"=>"1"}, "commit"=>"Update Dueler", "id"=>"15"}
【问题讨论】:
标签: ruby-on-rails ruby parameters controller nested-attributes