我接受/拒绝作为开关:
<%= form_for @dueler do |f| %>
<%= f.check_box :accept, class: 'someclass', :data => { 'on-text'=>'Decline', 'off-text'=>'Accept'} %>
<script>
$("[class='someclass']").bootstrapSwitch();
</script>
<%= button_tag(type: 'submit') do %>
Save
<% end %>
<% end %>
但是我想把它们分成两个单独的按钮。如果用户点击一个,那么如何使用相应的:accept
值自动提交的位置:
<%= button_tag(type: 'submit') do %>
Accept # submits & makes :accept true
<% end %><br><br>
<%= button_tag(type: 'submit') do %>
Decline # submits & makes :accept false
<% end %>
答案 0 :(得分:3)
您可以使用f.button传递您将在控制器中使用的参数:
在您看来:
<%= f.button "Accept", name: "button_action", value: "accept" %>
<%= f.button "Decline", name: "button_action", value: "decline" %>
在您的控制器中使用参数值:
if params['button_action'] == 'accept'
else
end
答案 1 :(得分:0)
在您的控制器中...检查提交按钮的值 - 这将是&#34;接受&#34;或&#34;拒绝&#34;并根据它设置布尔值。
答案 2 :(得分:0)
这是我的经历
当您复选框并且未设置任何值时,它会自动发送布尔值。这意味着真或假。选中复选框时,值为true或者如果框未标记,则值为false或0。
希望它有所帮助。