【问题标题】:Gem Seer and Ajax on Ruby on RailsRuby on Rails 上的 Gem Seer 和 Ajax
【发布时间】:2011-04-27 19:12:28
【问题描述】:

我正在尝试使用 Ajax 显示使用 Seer 的折线图。

但是当我发出 ajax 请求时,我得到的只是一个空白页面。当我使用 render :partial 显示时,相同的部分工作正常。

这里是部分 _show.html.erb

<div id="chart"></div>
<%= Seer::init_visualization -%>
<%= Seer::visualize(
      sensors, 
      :as => :line_chart,
      :in_element => 'chart',
      :series => {
        :series_label => 'location',
        :data_label => 'id',
        :data_method => 'value',
        :data_series => series
      },
      :chart_options => { 
        :height => 250,
        :width => 500,
        :axis_font_size => 12,
        :colors => ['#0099CC','#990000','#009900'],
        :title => "Rain Data",
        :point_size => 0,
        :line_size => 3,
        :title_y => "Water Level in Feet",
        :smooth_line => "true",
      }
     )
 -%>

这行得通:

<%= render :partial => 'hcfcdsensors/show', :locals => {:sensors => @sensors , :series => @series} %>

但这不是:

<%= link_to_remote "show" , :url => show_graph_hcfcd_url(@hcfcdsensors) ,:update => "graphDiv" %>

整个网页只是空白。 我已经检查了页面中所需变量的操作和可用性,并且一切正常。

欢迎任何帮助。

谢谢 肖纳克

【问题讨论】:

    标签: ruby-on-rails ruby ajax partial


    【解决方案1】:

    进行ajax调用时,需要手动绘制图表。 Seer 用户“drawChart()”方法绘制图表。

    下面是我的ajax响应

    <% result_script = Seer::visualize(
          @flight_result_search.sell_classes_for_graph, 
          :as => :area_chart,
          :in_element => 'historical_sellout_chart',
          :series => {
            :series_label => 'name',
            :data_label => 'days_prior',
            :data_method => 'capacity',
            :data_series => [@flight_result_search.current_sell_for_graph,@flight_result_search.historical_sell_for_graph]
          },
          :chart_options => { 
            :height => 400,
            :width => 600,
            :axis_font_size => 11,
            :title => "Historical Sell Out Chart",
            :point_size => 3,
            :color =>['#324F69','#90000B']
          }
         )
    
    %>
    <%= result_script.gsub("</script>",' drawChart();</script>') %>
    

    不要忘记评估您的 ajax 响应,因为它是 javascript 代码。 drawChart() 也应该在同一个脚本标签中,否则它不起作用。

    【讨论】:

    • 嗨 Dinesh,这在我的快速尝试中奏效,当我在浏览器中使用 ajax 链接时,我可以看到图表。但是现在当我实际将它放入rails应用程序时,它仍然是空白,这次唯一的错误是“容器未定义”。
    【解决方案2】:

    几个问题...如果将 移动到封闭页面而不是部分页面会发生什么?此外,请检查刷新页面时是否有任何 JavaScript 错误。在 Safari 或 Firefox 中,打开控制台进行检查。

    【讨论】:

    • 当我将 移动到封闭页面时,我得到了相同的结果。我在 chrome 上使用 chrome 和控制台工具。页面最初没有错误。当我单击发出 ajax 请求的链接时,我只是得到一个空白页面。
    • 我清理了一些东西,并把它放在一个干净的页面上只是为了检查。我仍然有同样的问题。这次我得到一个错误:'[16:34:30.093] google is not defined /javascripts/prototype.js?1300914093:403' in firefox.
    • 但同时,如果我尝试单独使用 ajax 链接,我可以看到图表没有问题。
    • 我仍然坚持这个:(..任何线索??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 2015-02-04
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多