2016-03-08 40 views
0

我想弄清楚,如果有可能用单选按钮发送多个参数。Rails radio_button_tag如何发送多个参数

第一个参数是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 %> 

这时我才看到:为了PARAMS在日志:provider_id

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

我试图用hidden_field但预计它是不工作始终向列表中的最后一个提供商发送ID

谢谢任何​​帮助赞赏

+0

为什么你需要与每个供应商一起设置的时间?从你的代码中,'time_for_order_00_00'似乎不依赖于'provider',因此对于所有的单选按钮似乎都是一样的。如果是这种情况,您可以简单地在单个隐藏字段中发送订单时间。 – BoraMa

+0

发送一个数组,并使用控制器中的索引获取。 '<%= 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]]' – Sravan

+0

@Sravan感谢您的回复。我试图在控制器中获取参数,但由于某种原因它是空的。 [这里是我的日志“order”=>“2016-03-09T00:00:00 + 00:00 1”] if def order_create if params [:order] .present? 闪光[:警报] =参数[:顺序[1]] redirect_to的(:背面) 别的 闪光[:警报] = “2” redirect_to的(:背面) 端 端 – AlexRor

回答

0

发送从雷达按钮标签阵列,并且使用在控制器中的索引值撷取。

<%= 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 
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]