Rails4.2にしたらaxlsx_railsもバージョンアップしましょう

うちのプロジェクトでRailsのバージョンを4.2にしたら、gem respondersを入れようと書かれていたので、入れたのですが、エラーで落ちました…。

やったこと

まず、respondersのリポジトリに書かれている通りにしました。

bundle exec rails g responders:install

これで、lib/application_responder.rbが作られます。

application_controller.rbの先頭を書いておきます。

require "application_responder"

class ApplicationController < ActionController::Base

  self.responder = ApplicationResponder
  respond_to :html, :json

  # 略
end

この状態で、spring rails sを実行してサーバを立ち上げ、deviseのログインページに移動しようとしたところ、エラー発生。
ApplicationResponderクラスにcallメソッドがないと言われます。しかし、ApplicationResponderクラスの親クラスである、ActionController::Responderクラスを見ると、ちゃんとcallメソッドがあります…。

Rails4.2とrespondersばっかり怪しんで調べていたんですが、RubyMineで親クラスを見ようとしたときに、候補としてaxlsx_railsのActionController::Responderクラスも表示されました。まさか…と思ってこれをコメントアウトしたところ、ページが表示されました。原因は、axlsx_railsのバージョンが0.2.0だったことです。なので、axlsx_railsのバージョンを0.3.0にしましょう!

bundle update axlsx_rails

以上です!


タグ Ruby, Ruby on Rails | パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です