我知道有些人会认为我应该使用form_tag:remote => true,但我不知道如何渲染整个html输出....
我的问题如下:
我有这个通过3个combox发送集合的表单
<%= form_remote_tag :url => report_client_reports_path, :update => :graphic do%>
<%#= form_tag reporte_client_reports_path%>
<p><%= label_tag :supermercados %>
<%=select_tag "supermercados[]", options_from_collection_for_select(@supermercados, "id", "name"),{:multiple=>true, :id => "supermarkets"}%>
</p>
<p><%= label_tag :cortes %>
<%=select_tag "cortes[]", options_from_collection_for_select(@cortes, "corte_real","cuts"),{:multiple=>true, :id => "cortes"}%>
</p>
<p><%= label_tag :productos %>
<%= select_tag "productos[]", options_from_collection_for_select(@productos, "id", "name"),{:multiple=>true, :id => "products"}%>
</p>
<p><%= submit_tag 'Send' %></p>
<%end%>
如果我取消注释这一行: &lt;%#= form_tag reporte_client_reports_path%&gt; 它运作良好并向我呈现图表,但不是我期望的工作方式。
我已经检测到使用form_remote_tag,它会发送所有变量值及其值,不知道为什么我的控制器只能看到每个变量的一个值。
这是控制器:
@super = params[:supermarkets]
@superm = []
@super.each do |s|
@superm << Company.find(s).abbr
end
@cuts = params[:cuts]
@prods = params[:products]
@cortesGraph = []
@cortess.to_a.each do |c|
@cortesGraph << "#{RawData.find_by_real_cut(c).cuts}"
end
@ superm,@ cuts和@products对象在数组中没有收到超过1个值,是路由问题还是我在form_remote_tag中遗漏的选项?
并简单地更新,实际上仍在发生的是:
本作品:
<%= form_tag reporte_client_reports_path do%>
这不是:
<%= form_tag reporte_client_reports_path,:remote=>true do%>
问题是:远程不发送我的参数作为数组发送所有数据为1 var:s
答案 0 :(得分:0)
我以功能方式解决了,但在我的控制器中可能有一些非常奇怪的东西:
if request.xhr?
@super = params[:supermercados].to_s.split(",")
@cortess = params[:cortes].to_s.split(",")
@prods = params[:productos].to_s.split(",")
end