2011-04-27 2 views
2

Ajax를 사용하여 Seer을 사용하여 선 그래프를 표시하려고합니다.Ruby on Rails의 Gem 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" %> 

전체 웹 페이지가 단지 빈 간다 . 페이지에서 필요한 변수의 동작 및 사용 가능성을 확인하고 모두 정상적으로 작동합니다.

어떤 도움을 환영합니다. 부분보다는 바깥 쪽 페이지 %> - 당신이 <% = 예언자 :: init_visualization를 이동할 경우 발생하는

감사 Shaunak 질문

답변

0

아약스 전화를 걸 때 차트를 수동으로 그려야합니다. 차트를 그리는 사용자에게 "drawChart()"메서드를 사용합니다.

다음은이 자바 스크립트 코드로 아약스 응답을 평가 후면 잊지 마세요 내 아약스 응답

<% 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>') %> 

입니다. 또한 drawChart()는 동일한 script 태그에 있어야하며 그렇지 않으면 작동하지 않습니다.

+0

안녕 Dinesh, 이것은 나의 빠른 시도에 효과가 있었고 나는 브라우저에서 ajax 링크를 사용할 때 그래프를 볼 수 있었다. 그러나 이제는 실제로 그것을 레일 응용 프로그램, 그것은 여전히 ​​빈, 단지 오류가 이번에는 "컨테이너가 정의되지 않습니다"갑니다. – Shaunak

0

커플 ...? 또한 페이지를 새로 고칠 때 JavaScript 오류가 있는지 확인하십시오. Safari 또는 Firefox에서 확인할 콘솔을 엽니 다.

+0

<% Seer :: init_visualization - %>을 둘러싼 페이지로 이동하면 같은 결과를 얻습니다. 크롬에서 콘솔 도구를 사용하고 있습니다. 처음에는 페이지에 오류가 없습니다. 링크를 클릭하고 아약스 요청을하면 빈 페이지가 나타납니다. – Shaunak

+0

나는 물건을 청소하고 이것을 확인하기 위해 깨끗한 페이지에 올려 놓았다. 나는 여전히 같은 문제가있다. 이번에는 오류가 발생합니다 : '[16 : 34 : 30.093] Google은 파이어 폭스에서 /javascripts/prototype.js?1300914093:403을 정의하지 않았습니다. – Shaunak

+0

하지만 동시에 아약스 링크를 별도로 사용하면 그래프에 아무런 문제가없는 것을 볼 수 있습니다. – Shaunak