2012-02-25 4 views
1

ハイチャートを使用していくつかのチャートを設定し、華麗な「gon」宝石を使用してシリーズの列に値を設定しました。今、私はそれを結果をajaxを使用して更新しようとしています。ajaxを使ってハイチャートを更新する

user_controller:ここ

は私のセットアップは次のようになります。

gon.segmentedData = ActiveRecord query here.. 

application.js

var weekly_options = { //Some standard highcharts options here 


        series: gon.segmentedData 
       }; 

これは完全にグラフを描画します。

<div class = deposit> 
<%= form_tag transact_path, :remote => true, :validate => true, :method => :post do %> 
. 
. 
. 
<%= submit_tag "Deposit", :id => 'deposit_button', :class => 'round', :disable_with => 'Please wait..' %> 

transaction_controllerのアクションを作成

transaction_controllerにチャート、I再移入系列データへの更新データを取得するために:私は、次のアクションに

ビューを使用してこのチャートをajaxifyしたいです

def create 
gon.segmentedData = .. 
end 

create.js:

var options = //here i pass all the options again 

    new Highcharts.Chart(options); 

私の問題は、私はtransaction_controllerを通じてcreate.jsするオプションの更新されたセットを取得できませんよということです。同じグラフが再びレンダリングされます。

誰かが私のためにこのアプローチを批判できるかどうか非常に感謝します。

答えて

1

私は私のhighchartsデータを取り込むために、私のコントローラから更新されたデータをフェッチする問題を抱えていました。古くなったデータを返すgonを使う代わりに、私はjsonに切り替えました。今の魅力のように動作します。

0

時間を節約するために怠惰なハイチャートを使用してください!

https://github.com/michelson/lazy_high_charts

例えばコントローラで 、ビューで

@h = LazyHighCharts::HighChart.new('graph') do |f| 
f.options[:chart][:defaultSeriesType] = "area" 
f.series(:name=>'John', :data=>[3, 20, 3, 5, 4, 10, 12 ,3, 5,6,7,7,80,9,9]) 
f.series(:name=>'Jane', :data=> [1, 3, 4, 3, 3, 5, 4,-46,7,8,8,9,9,0,0,9]) 
end 

<%= high_chart("my_id", @h) %> 
+0

ありがとうございます!それは有望に見えます! – Rahul

関連する問題