带有选项的提交按钮

Submit button with Options

对于一个表单,我想要两个提交按钮,名称为:

AppoveDecline

当用户点击 Approve 时,它也应该发送 approve: true

当用户点击 Decline 时,它也应该发送 approve: false

基本上按钮应该像复选框一样工作

这在 Rails 中可行吗?如何实现?谢谢

你可以做到,但你需要 js/jquery。您将有隐藏的复选框,您将以正确的方式检查它和两个按钮。 让我们假设您的表单有 id 'form'。你的复选框有 id 'approve_checkbox' 在这种情况下,你需要 submit 函数来实现这样的功能。

$('#approve_button').on('click', function(e){
  e.preventDefault();
  $('#approve_checkbox').prop('checked', true);
  $('#form').submit();
});

$('#decline_button').on('click', function(e){
  e.preventDefault();
  $('#approve_checkbox').prop('checked', false);
  $('#form').submit();
});

当然你可以简化这段代码,但我认为思路很清晰。

如果您使用的是标准 submit 表单助手,您将返回一个带有键 "commit" 的参数。您可以在您的控制器代码中对此进行测试。

<%= f.submit 'Approve' %>
<%= f.submit 'Decline' %>

在控制器中...

def create
  approved = params[:commit] == 'Approve'

approved 变量将包含 true 或 false,您可以根据需要在其余操作/方法中使用它。