電気羊の執務室

魔法を作る仕事をしています。

lazy_high_chartsを使ってみた

Lazy high chartsを使ってみた

railsでグラフを表示させたくて、 Lazy high chartsを使ってみました。 やった事を書いておきます。

なんでLazy high chartsなの?

Lazy high chartsを選んだ理由は、以下の通りです。

  1. 『Web グラフ』で検索したら、high chartsの評判がよかった
    webアプリ(perlやjavascript)でグラフ表示なら、Highcharts で決まりかも
  2. 『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

棒グラフ

グラフが出ました。

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

Comments