2019-10-18に投稿

【Rails】エラーへの対処をgemで便利に

はじめに

実装したい機能がエラーによりなかなか実装できないときに、教えてもらっている先生が導入していたやり方。
以下の2つのgemを導入するとデフォルトのエラー画面が変わり、とても便利そうなのでやってみた。
開発初期にセッティングしてしまうとよさそうです。

  • better_errors(エラー画面がわかりやすくなる)
  • binding_of_caller(そのエラー画面にirbを表示)

参考

導入の手順

(1)gemを記述してインストールする

Gemfileの中のgroup :development do ~~ endの中に2行を追加する 。

Gemfile

group :development do
    ...
    ...
    gem 'better_errors'
    gem 'binding_of_caller'
end
  • 開発している時のみ使いたいので、group :developmentの中に記述する。

次に、ターミナルにて、bundle installを実行

$ bundle install

この時点でエラー画面が変わっていれば完了!
しかしこれだけだと自分の環境だとbetter_errorsの画面が出ず、デフォルトのエラー画面のままでした。

(2)ローカルホスト以外のIPを許可

どうやらこの時点ではインストールは完了しているが、デフォルトだとlocalhostからアクセスした場合しかbetter_errorsが有効にならないようです。
そこで、他の開発環境(自分の場合AWSのcloud9を使っています)からでも実行できるように、許可するIPを設定する必要があるようです。

config/emvironments/development.rb

Rails.application.configure do
    ...
    ...
end

BetterErrors::Middleware.allow_ip! "0.0.0.0/0"    #この一行を追加
  • 「0.0.0.0/0」を指定するとすべてのIPが許可される。
  • endの外に書く。(?)

これで自分の環境ではうまくいき、エラーが出た際にエラー画面が変わるようになりました。

おわりに

better_errorsと同時にbinding_of_callerを入れることで、
irb(コンソール)を操作して変数の値などが確認できるのでデバッグ効率が上がりそうです。

>> p hoge
=> (変数hogeの中身が表示)

以上。なかなか今、ビューからコントローラーにパラメータを思い通りに渡すことができず苦戦中です。惜しいみたいなんだけど。

Originally published at massasquash.qrunch.io
ツイッターでシェア
みんなに共有、忘れないようにメモ

Massa

北海道でアプリ制作に取り組んでるノンプログラマな農夫。仕事や日常生活で感じる小さな不便を解消すべく趣味と実益を兼ねて遊んでます ■Python・GAS + LINE bot

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント