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

グラフが出ました。
あとは、データの取得がうまくできれば、楽しく暮らせそうです。