2

我接受/拒绝作为开关:

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

3 回答 3

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
于 2016-08-04T01:11:25.223 回答
0

这是我的经验

当您制作复选框并且未设置任何值时,它会自动发送布尔值。这意味着真或假。当复选框被选中时,值将为 true 或 1,如果未选中复选框,则值将为 false 或 0。

希望能帮助到你。

于 2016-08-04T01:26:14.533 回答
0

在您的控制器中...检查提交按钮的值 - 这将是“接受”或“拒绝”并基于此设置布尔值。

于 2016-08-04T00:58:04.510 回答