【问题标题】:RubyOnRails sending params with form_remote_tagRubyOnRails 使用 form_remote_tag 发送参数
【发布时间】:2011-05-03 23:26:57
【问题描述】:

我知道有些人会认为我应该将 form_tag 与 :remote=>true 一起使用,但我不知道如何呈现整个 html 输出......

我的问题如下:

我有一个通过 3 个组合框发送集合的表单

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

如果我取消注释此行: 它工作得很好,向我展示了图表,但不是我期望的工作方式。

我检测到使用 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%>

问题是 :remote 没有将我的参数作为数组发送,而是将所有数据作为 1 var :s 发送

【问题讨论】:

    标签: ruby-on-rails ruby ajax routing


    【解决方案1】:

    我以功能方式解决了问题,但在我的控制器中可能有一些非常奇怪的东西:

     if request.xhr?
        @super = params[:supermercados].to_s.split(",")
        @cortess = params[:cortes].to_s.split(",")
        @prods = params[:productos].to_s.split(",")
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 2023-01-17
      • 2018-02-15
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多