【发布时间】:2016-06-22 00:45:14
【问题描述】:
我想知道是否可以使用单选按钮发送多个参数。
第一个参数是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 %>
此时我只看到 :order params in the logs :provider_id
"order"=>"2016-03-09T00:00:00+00:00"
我尝试使用hidden_field,但它没有按预期工作,它总是为列表中的最后一个提供者发送 id
谢谢你,感谢任何帮助
【问题讨论】:
-
为什么需要与每个提供者一起设置时间?从您的代码来看,
time_for_order_00_00似乎不依赖于provider,因此对于所有单选按钮来说似乎都是相同的。如果是这种情况,您可以简单地将订购时间发送到一个隐藏字段中。 -
发送一个数组,并使用控制器中的索引获取。
<%= 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 感谢您的回复。我试图在控制器中获取参数,但由于某种原因它是空的。 [这是我的日志 "order"=>"2016-03-09T00:00:00+00:00 1" ] 如果 params[:order].present 像 def order_create 一样测试? flash[:alert] = params[:order[1]] redirect_to (:back) else flash[:alert] = "2" redirect_to (:back) end end
-
@Sravan 我想通了。使用 split 方法,它帮助我使用参数索引。感谢出色的解决方案 params[:order].split[0]
-
好的,没有提及老兄,我将其粘贴为答案。如果您觉得有帮助,请采纳。
标签: ruby-on-rails ruby-on-rails-4 radio-button radio-group