Rails通过提交传递参数

时间:2014-12-10 22:44:30

标签: ruby-on-rails

我有一个Rails 3.2.12应用程序,我想通过表单提交按钮传递一个参数。

参数是:invoice_id。在表单中,值为@invoice

我试过了:

<%= f.submit "Submit", :class => "btn btn-success", params: {:invoice_id => @invoice} %>

在控制器中,我会像这样访问它:

def addinvtimes
  @invoice = params[:invoice_id]

但是,它最终都是零。

感谢您的帮助!

UPDATE1

1 个答案:

答案 0 :(得分:3)

这不是HTML表单的工作方式。如果您希望提交的数据与表单的其他数据一起提交但用户无法查看或编辑,请将其填入隐藏字段,如下所示:

<%= form_for @order do |f| %>
  <%= f.text_field :customer_name %>
  <%= f.hidden_field :invoice_id, value: @invoice.id %>
<% end %>

执行此操作时,invoice_id将与表单的其他数据一起提交,因此在这种情况下,您可以params[:order][:invoice_id]访问它。