読者です 読者をやめる 読者になる 読者になる

kaminariでno implicit conversion of StringIO into String (TypeError)が発生した時の対処法

環境

事象

  • kaminariのビュー生成コマンドを実行
$ rails g kaminari:views bootstrap -e haml
/home/vagrant/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/json/common.rb:155:in `initialize': no implicit conversion of StringIO into String (TypeError)
	from /home/vagrant/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/json/common.rb:155:in `new'
	from /home/vagrant/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/json/common.rb:155:in `parse'
	from /home/vagrant/.rvm/gems/ruby-2.1.1/gems/activesupport-4.1.0/lib/active_support/json/decoding.rb:26:in `decode'
	from /home/vagrant/.rvm/gems/ruby-2.1.1/gems/kaminari-0.15.1/lib/generators/kaminari/views_generator.rb:99:in `block in get_files_in_master
(省略)
  • ビュー生成中にエラーが発生

簡単な調査

  • Rails 4.0.4では問題なかった。
  • Rails 4.1.0から起こっているみたい。
  • 変わったところとしては、JSON周りが修正されたので、そこら辺が原因なのかな?
  • 原因の結論は出てないです^^;

対処法

修正前

Gemfile
gem 'kaminari'

修正後

Gemfile
gem 'kaminari', github: 'amatsuda/kaminari'
  • Bundle を実行
$ bundle install
  • kaminariのビュー生成コマンドを実行
$ rails g kaminari:views bootstrap -e haml
      downloading app/views/kaminari/_first_page.html.haml from kaminari_themes...
      create  app/views/kaminari/_first_page.html.haml
      downloading app/views/kaminari/_gap.html.haml from kaminari_themes...
      create  app/views/kaminari/_gap.html.haml
      downloading app/views/kaminari/_last_page.html.haml from kaminari_themes...
      create  app/views/kaminari/_last_page.html.haml
      downloading app/views/kaminari/_next_page.html.haml from kaminari_themes...
      create  app/views/kaminari/_next_page.html.haml
      downloading app/views/kaminari/_page.html.haml from kaminari_themes...
      create  app/views/kaminari/_page.html.haml
      downloading app/views/kaminari/_paginator.html.haml from kaminari_themes...
      create  app/views/kaminari/_paginator.html.haml
      downloading app/views/kaminari/_prev_page.html.haml from kaminari_themes...
      create  app/views/kaminari/_prev_page.html.haml

雑記

  • 無事にビューの生成が実行できましたv
  • バージョンは変わってないけどGithubのmasterが最新なので今回の問題は解決してるみたいだけど、RubyGemsにはまだ上がってない感じかな。
  • 0.15.2 に今回の対応が入る感じなのかな