Lazy high chartsを使ってみた
railsでグラフを表示させたくて、 Lazy high chartsを使ってみました。 やった事を書いておきます。
なんでLazy high chartsなの?
Lazy high chartsを選んだ理由は、以下の通りです。
- 『Web グラフ』で検索したら、high chartsの評判がよかった
→webアプリ(perlやjavascript)でグラフ表示なら、Highcharts で決まりかも - 『ruby high charts』で検索したら、Lazy high chartsの記事を見つけた
→Rails で Lazy high charts を使ってチャートを実装してみた
というわけで、Lazy high chartsを使ってみます。
まずはインストール
上記のサイトを参考に、Lazy high chartsのインストールを行います。
まず、Gemfile に
gem 'lazy_high_charts'
を追加しました。
そして、
bundle
を実行します。インストールが始まりました。
ここまでは問題ありません。
そして、
bundle exec rails g lazy_high_charts:install
を実行すると、highchart.js がダウンロードされて、assets/javascripts に配置される・・・
はずでしたが、何やらエラーが表示されました。
インストールエラー
エラーメッセージは、次のようなものでした。
% /projects/rails/lazy_chart% bundle exec rails g lazy_high_charts:install
[WARNING] Could not load generator "generators/lazy_high_charts/install/install_generator". Error: uninitialized constant LazyHighCharts::Rails::Generators.
/.rvm/gems/ruby-1.9.3-p0/gems/lazy_high_charts-1.4.0/lib/generators/lazy_high_charts/install/install_generator.rb:4:in `<module:LazyHighCharts>'
/.rvm/gems/ruby-1.9.3-p0/gems/lazy_high_charts-1.4.0/lib/generators/lazy_high_charts/install/install_generator.rb:3:in `<top (required)>'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:300:in `block (2 levels) in lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:296:in `each'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:296:in `block in lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:295:in `each'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:295:in `lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:152:in `find_by_namespace'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:169:in `invoke'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/commands/generate.rb:12:in `<top (required)>'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/commands.rb:29:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'
Could not find generator lazy_high_charts:install.
このエラーについて調べたところ、次の記事が見つかりました。
Problem with rails g lazy_high_charts:install
どうやら、Railsのバージョンが3.1以上の場合は、
app/assets/javascripts/application.jsに次の行を追加しないといけないようです。
//= require highcharts
//= require exporting
これで、エラーは解決したでしょうか。
% /projects/rails/lazy_chart% bundle exec rails g lazy_high_charts:install
[WARNING] Could not load generator "generators/lazy_high_charts/install/install_generator". Error: uninitialized constant LazyHighCharts::Rails::Generators.
/.rvm/gems/ruby-1.9.3-p0/gems/lazy_high_charts-1.4.0/lib/generators/lazy_high_charts/install/install_generator.rb:4:in `<module:LazyHighCharts>'
/.rvm/gems/ruby-1.9.3-p0/gems/lazy_high_charts-1.4.0/lib/generators/lazy_high_charts/install/install_generator.rb:3:in `<top (required)>'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:300:in `block (2 levels) in lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:296:in `each'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:296:in `block in lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:295:in `each'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:295:in `lookup'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:152:in `find_by_namespace'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/generators.rb:169:in `invoke'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/commands/generate.rb:12:in `<top (required)>'
/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.13/lib/rails/commands.rb:29:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'
Could not find generator lazy_high_charts:install.
じゃん。 やっぱり出ますね。
しかし、くだんの記事によると、どうやらこれでも問題なく動作するらしいです。
では、動かしてみますか
それでは、警告を気にせず、動作させてみます。
rails s
グラフが出ました。
あとは、データの取得がうまくできれば、楽しく暮らせそうです。