我正在创建一个用户可以选择产品和数量的表单。我需要将id
值从对象@event
传递给控制器,但我不知道这是正确的方法。就像现在一样,控制器中的params[:event_id]
字段总是为零。
<%= form_tag logic_giveRandomGifts_path :method => 'post' %>
<div class="form-group">
<%= collection_select(:params, :product_id, Product.all, :id, :name, :prompt => true) %>
Quantidate:
<%= text_field_tag :quantity, params[:quantity], :size => 2 %>
<%= submit_tag "GO!",params[:event_id] => @event.id,:class => 'btn btn-default' %>
</div>
答案 0 :(得分:3)
在表单中添加隐藏字段并将其值设置为 @ event.id
<%= form_tag logic_giveRandomGifts_path :method => 'post' %>
<div class="form-group">
<%= collection_select(:params, :product_id, Product.all, :id, :name, :prompt => true) %>
Quantidate:
<%= text_field_tag :quantity, params[:quantity], :size => 2 %>
<%= hidden_field_tag :event_id, value: @event.id%> #add this
<%= submit_tag "GO!",params[:event_id] => @event.id,:class => 'btn btn-default' %>
</div>
<% end %>
您可以在控制器中使用现在的事件ID params [:event_id]
答案 1 :(得分:2)
&lt;%= hidden_field_tag:event_id,@ event.id%&gt;
所以这将在params [:event_id]中提供。
答案 2 :(得分:1)
只需在表单中传递隐藏字段,如下所示
<%= hidden_field_tag :event_id, value: @event.id%>
它将在控制器中显示为
params[:event_id]