Gem Seer и Ajax на Ruby on Rails - PullRequest
       10

Gem Seer и Ajax на Ruby on Rails

3 голосов
/ 27 апреля 2011

Я пытаюсь отобразить линейный график, используя Seer , используя Ajax.

Но все, что я получаю, это пустая страница, когда я делаю 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" %>

Вся веб-страница просто пуста. Я проверил действие и наличие обязательных переменных на странице и все там нормально.

Любая помощь приветствуется.

Спасибо Shaunak

Ответы [ 2 ]

1 голос
/ 22 июля 2011

При совершении ajax-вызова Вам необходимо нарисовать график вручную.Проведите пользовательский метод 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 () должен быть в том же теге скрипта, иначе он не будет работать.

0 голосов
/ 28 апреля 2011

Пара вопросов ... что произойдет, если вы переместите <% = Seer :: init_visualization -%> на страницу вложения, а не на ее часть?Кроме того, проверьте, есть ли какие-либо ошибки JavaScript при обновлении страницы.В Safari или Firefox откройте консоль, чтобы проверить.

...