Rails radio_button_tag如何发送多个参数

时间:2016-03-08 07:10:11

标签: ruby-on-rails ruby-on-rails-4 radio-button radio-group

我想弄清楚,是否可以通过单选按钮发送多个参数。

第一个参数是time,第二个provider_id。我将每种方法都用于提供程序,并尝试选择只选择一次,而且只选择一个提供程序。

我的观点form_tag

<%= form_tag(provider_order_create_path)  %>

  <div class="btn-group" data-toggle="buttons">

   <% @group.provider.each do |provider| %>

<label class="btn btn-default">
  <%=  radio_button_tag :order, time_for_order_00_00.to_datetime, 'false',
  {:provider_id => provider.id} %><%= time_tag(time_00_00, :format => '%I:%M %p') %>
</label>

  <% end %>
</div>

<%= submit_tag "Submit", type: 'submit', :name => nil %>

此时我只看到:日志中的订单参数:provider_id

"order"=>"2016-03-09T00:00:00+00:00"

我尝试使用hidden_field,但它没有按预期工作,它总是为列表中的最后一个提供者发送id

谢谢,任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

我能够在@Sravan的帮助下解决这个问题。

View will looks like:
<%= radio_button_tag :order, [time_for_order_00_00.to_datetime,provider.id],
'false', {:provider_id => provider.id} %><%= time_tag(time_00_00, :format => '%I:%M %p') %>

Controller will be: 
@time_from = params[:order].split[0]
@provide_id = params[:order].split[1]

答案 1 :(得分:0)

从rado按钮标记发送数组,并使用控制器中的索引值进行提取。

<%= radio_button_tag :order, [time_for_order_00_00.to_datetime,provider.id], 'false', {:provider_id => provider.id} %><%= time_tag(time_00_00, :format => '%I:%M %p') %> , controller_action => params[:order[0]] ,params[:order[1]] 

在控制器中,

def you_method
  @time = params[:order].split[0]
  @provider = params[:order].split[1]
end