【Ruby On Rails】 better_errorsが動作しない


デバック用のgem「better_errors」を「bundle install」したんだけど動かなかったのでメモ。

railsで使用する場合「better_errors」をインストールするだけで使えるようになります。
と聞いていたのでインストールしてみたが動かなかった。

インストールはこんな感じ
# vi Gemfile

group :development, :test do
  gem "better_errors"
  gem "binding_of_caller"
end

# bundle install

これで「rails s」で起動したがエラー画面に変化はなかった。
※「binding_of_caller」は「better-errors」のエラー画面でirbを利用するためのものだそうです。

んで調べてみるとなんてことはない。
デフォルトでは「localhost」でのアクセスのときしか動作しないようになっているとのこと。
エラー画面からコマンドを実行できるのでセキュリティの向上のためですね。

私はCentOSでrailsを動かしてwindowsからブラウジングしていたので動作しなかったみたいです。
んでどうするかというとこれも簡単。

「BetterErrors::Middleware.allow_ip」でアクセス許可するIPを指定すればOK。

ますは設定ファイルに記述
# vi config/environments/development.rb

BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']

※ここで直接IPを指定してもいいみたいだけど、環境変数で渡したほうが何かと便利。

んで、rails起動時にTRUSTED_IPを指定して起動。

# TRUSTED_IP=192.168.XXX.XXX rails s

これでwindowsからアクセスしたら無事にエラー画面でデバックができるようになりました。

コメントを残す

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