Help us understand the problem. What is going on with this article?

【Rails】better_errorsとbinding_of_callerで自分でエラーを解決できるようになろう【初心者向け】

More than 1 year has passed since last update.

はじめに

今までテキストやRailsチュートリアルに沿ってアプリを作っていました。
現在は自分でオリジナルアプリを作成しています。
いざ、自分で作るとなると、どうしてもエラーを読み解く力が必要になるなと感じています。
そこで、better_errorsbinding_of_callerというgemを使いこなすとエラーに対処しやすくなるので紹介してみます。

better_errorsとbinding_of_callerとは

better_errorsはデフォルトのエラー画面をわかりやすく成形してくれるgem。
binding_of_callerはそのエラー画面にirbをつけてくれるgem。

実際のエラー画面がこちらです。

スクリーンショット 2018-09-28 20.43.46.png

では、これから導入方法からエラー画面の見かたまで解説していきます。

導入方法

Gemfileのgroup :development doの中に2つを記述してbundle installするだけ

Gemfile
group :development do
  gem 'better_errors'
  gem 'binding_of_caller'

group :development doの中に記述する理由は開発しているときのみ使えるようにするため。

$ bundle install

これで導入完了です。

エラー画面の見かた

スクリーンショット 2018-09-28 20.43.46.png

○ エラーメッセージ

いつものエラー文です。
これをもとにエラーの原因を探っていきます。

○ トレース情報

わかりやすく説明するとコードが怪しいところの候補をいくつか挙げてくれるところです。
トレース情報をクリックすることで、隣のirbにコードを表示してくれます。

○ irb

コードの怪しいところを表示してくれます。
下の入力欄はコンソールになっていてrails cと同じことができます。
わざわざターミナルの表示をしなくて良いので便利です。

○ リクエスト情報

request時のパラメータを表示してくれます。

○ ローカル変数情報

変数の中身を表示してくれます。

まとめ

このように一画面ででてくる情報量やできることが格段に増えます。
エラーが出た時にエラー文をググるだけではなく、コンソールで変数の中身を見たり、パラメータの確認をして様々な角度から解決方法を考えていけるようになれます。
最初は難しいかもしれませんが、徐々に慣れていって使いこなせば、効率よく開発していくことができるでしょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away