Open Flash Chart 2を試す

下の日記では愚痴しかでてこなかったOFCですが、OFC2になっていたのでそっちを試す。

OFC2 4 Rails
http://openflashchart2.sentor.pl/

Windowsでのインストール手順

  • githubからZIPをDL
  • 解凍
  • project_home/vender/pluginsに「open_flash_chart_2」とリネームして放り込む

以上!

・・・とは行かないみたい。
「vendor/plugins/open_flash_chart_2/requirements/swfobject.js」を「public/javascript/open_flash_chart_2」にぶち込む。
「vendor/plugins/open_flash_chart_2/requirements/open_flash_chart.swf」を「public」にぶち込む。
 
そして

project_home>rake open_flash_chart_2:install

せっかく、ぶち込んだファイルが再びぶち込まれる。

サーバーを再起動したら怒られた。 
jsonが入っていなかった・・・orz

C:\Users\kenmituo>gem install json
Successfully installed json-1.1.9-x86-mswin32
1 gem installed
Installing ri documentation for json-1.1.9-x86-mswin32...
Installing RDoc documentation for json-1.1.9-x86-mswin32...

サンプルコードで試すけど、JSONのデータしか表示されない。
hamlが必要な場合があるっぽいので入れてみる。

C:\Users\kenmituo>gem install haml
Successfully installed haml-2.2.9
1 gem installed
Installing ri documentation for haml-2.2.9...
Installing RDoc documentation for haml-2.2.9...
Could not find main page README.rdoc
Could not find main page README.rdoc
Could not find main page README.rdoc
Could not find main page README.rdoc

特定のhtml.erbで呼び出したいので、こんな記述にする。

<%- content_for :html_header do -%>

<%- end -%>

使い方のサンプル
http://openflashchart2.sentor.pl/chart_examples/line
 
Documentationに重要なことが書いてある。

# in controller
@graph = ofc2(650,400, url_for( :controller => controller, :action =>action_name)

というのも、chartのサンプルコード

# in controller
#ofc2(width, height, url, base='/', id = '')
@graph = ofc2(650,300, 'charts_ofc2/line')

これだとデータを渡すのが俺にとっては面倒なのだ。
 
url_forを使えば、データを渡したりできる。

しかーし!やっぱり出来なかった、、、
ハッシュをセッションにぶち込む

graph_params = Hash.new
graph_params = {"year"=>@year, "month"=>@month, "this"=>@this, "prev"=>@prev, "next"=>@next }
session[:graph_params] = graph_params
@graph = ofc2(1000, 500, 'contoller_name/graph_code')

def graph_code
graph_params = session[:graph_params]
session[:graph_params] = nil

格好悪いけど、こんな感じでデータを渡す。
ひとまずおしまい。