2016年5月20日金曜日

【Rails4.2.6】capistrano-maintenance capistrano/tasks/maintenance.rake:1:in undefined method `namespace' for main:Object (NoMethodError)

  • 公開日:2016年05月20日

記事概要

capistrano-maintenanceのGemインストール後、rbenv exec bundle exec rails s -b 0.0.0.0でサーバーの起動に失敗しました。
この記事は、capistrano-maintenanceのNoMethodErrorエラーの修正方法について記述しています。

環境

  • rbenv
  • bundler
  • rails 4.2.6
  • ruby 2.3.0
  • capistrano 3.2.1
  • capistrano-maintenance
  • Nginx 1.8.1

capistrano-maintenance

capistrano-maintenanceは、capistrano3を使って、capコマンドでメンテナンス画面の表示非表示を切り替えることのできるライブラリです。

エラーの発生

capistrano-maintenanceをbundle installし、検証環境と本番環境(unicorn and Nginx)の動作確認後に、development環境でエラーが発生しました。
このエラーは、unicornサーバーでは発生しません

エラーの修正

以下のようにGemfileを修正します。

修正前

{project_folder}/Gemfile

group :development do
  gem 'capistrano-maintenance', '~> 1.0'
end

修正後

{project_folder}/Gemfile

group :development do
  gem 'capistrano-maintenance', '~> 1.0', require: false
end

require: falseを追加することで、rbenv exec bundle exec rails s -b 0.0.0.0でサーバーを立ち上げられるようになります。

まとめ

メンテナンス画面の切り替えは、手動では面倒な作業です。間違えも起きやすいです。
とても便利なツールなので、capistrano3でdeployをおこなっている開発者は、capistrano-maintenanceを利用してみてください。

以上。

PICK UP オススメ書籍

運営サイト(railsで作成しています)

参考記事

この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...