Ruby on rails 2个按钮,1个表格

Ruby on rails 2个按钮,1个表格,ruby-on-rails,forms,Ruby On Rails,Forms,我有一个简单的表单,看起来是这样的 <% remote_form_for post, :url => post_path(post), :method => :put do |f| -%> <%= f.submit "Approve" %> <%= f.submit "Deny" %> <% end -%> 所以问题是,如果用户单击“批准”按钮或“拒绝”按钮,则发送的参数是:commit=>“批准” 有人知道与执行相同功能的这

我有一个简单的表单,看起来是这样的

<% remote_form_for post, :url => post_path(post), :method => :put do |f| -%>
  <%= f.submit "Approve" %>
  <%= f.submit "Deny" %>
<% end -%>
所以问题是,如果用户单击“批准”按钮或“拒绝”按钮,则发送的参数是
:commit=>“批准”

有人知道与执行相同功能的这种或另一种(简单)方法相关的错误吗

谢谢。

JS-lib(我猜是原型)不知道按下了什么按钮。它只是序列化Ajax请求的表单字段值。使用普通表单POST时,浏览器会将正确的值附加到commit参数


您可以添加隐藏表单字段(例如操作)。然后添加JS代码,在按下相应按钮时(在发送Ajax请求之前)设置隐藏字段的所需值。

另一个选项是覆盖第二个按钮的“name”参数

<%= f.submit "Deny", :name => "commit_deny" %>
“提交\拒绝”%>

我认为每个表单提交都是唯一的(HTML内容),所以yopu有两个选项:

  • 使用两个表单,每个表单提交一份,这将导致相同的操作(您喜欢的CSS)
  • 使用2个按钮类型控件(即不提交)并与两个onClick事件一起提交(需要javascript)

  • 出于某种原因,我害怕任何形式为“2x,1y”的标题对不起,这可能被认为是不好的“形式”,但我想要一些能吸引你眼球的东西;)@vrish88,我不认为这是坏的形式,但它是关于你有哪些协会。可悲的是,这不起作用。当Prototype序列化表单时,它使用它看到的第一个submit按钮。实际上,它同时使用两个参数,然后rails只保留第一个。
    @post.approved =  params[:commit] == 'Approve' ? true : false
    
    <%= f.submit "Deny", :name => "commit_deny" %>