2016-03-08 76 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]