QA@IT

kaminariでcan't convert StringIO into Stringが発生する

3098 PV

rails g kaminari:views bootstrap -e haml

を発行すると

/usr/lib/ruby/gems/1.9.1/gems/json-1.8.1/lib/json/common.rb:155:
   in 'initialize': can't convert StringIO into String (TypeError)
        from /usr/lib/ruby/gems/1.9.1/gems/json-1.8.1/lib/json/common.rb:155:in 'new'
        from /usr/lib/ruby/gems/1.9.1/gems/json-1.8.1/lib/json/common.rb:155:in 'parse'
         :
        from /usr/lib/ruby/gems/1.9.1/gems/railties-4.1.0/lib/rails/commands.rb:17:in '<top (required)>'
        from bin/rails:4:in 'require'
        from bin/rails:4:in '<main>'

が発生してしまいます。
原因はどのような事が考えられますでしょうか?

  • CentOS release 6.5 (Final)
  • ruby 1.9.3p545 (2014-02-24 revision 45159) [i686-linux]
  • Rails 4.1.0

回答

自分も同じような事象に遭遇しました。エラー内容は少し違いますが、Githubにあるkaminariの最新版だとエラーが出ませんでした。

  • Gemfile修正前
gem 'kaminari'
  • Gemfile修正後
gem 'kaminari', github: 'amatsuda/kaminari'

bundleを実行後、

rails g kaminari:views bootstrap -e haml

自分はこれで解決しました。

編集 履歴 (0)
  • Railsのバージョンが上がり、JSONのメソッドが仕様変更になった為、gem上に上がっているものでは、対応しきれておらず、githubは対応ずみということでした
    ありがとうございました!
    -
  • kaminari のメンテナです。ごめんなさい、こちらは 0.15.1 に存在するバグです。https://github.com/amatsuda/kaminari/pull/526 で修正したのですが、まだこれを含むバージョンはリリースしていません。近いうちにいくつかのバグ修正を含んだ 0.16.0 をリリースする予定ですので、現状は上記のように github の master をお使い下さい。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。