読者です 読者をやめる 読者になる 読者になる

Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

Railsの開発効率をあげる - Better_Errorsを使ってdevelopment環境のエラー画面をリッチにする

Rails gem 開発を効率化する

Better_Errorsとは

Better_Errorsとは、Railsを始めとするRackアプリのエラー画面をリッチにするGemです。

では、実際にBetter_Errorsの導入前後の画面を見てみましょう。

Better_Errors導入前

よく見慣れたエラーですね。どこの箇所でExceptionが発生したかわかります。
f:id:nipe880324:20141025005133p:plain:w480

Better_Errors導入後

左側にスタックトレース、右上にソースコードと対話式console、右下にリクエストパラメーターや変数が表示されており、エラーの原因を理解するの簡単にできます。
f:id:nipe880324:20141025005146p:plain:w480

対象読者

  • Railsの開発効率を上げたい方(特に、開発中にエラー画面がよく表示される方)

動作確認

  • Rails 4.1
  • better_errors 2.0.0
  • binding_of_caller 0.7.2

目次


1. Railsプロジェクトを作成

まずはRailsプロジェクトを作成します。

rails new better_errors_test
cd better_errors_test

次にBetter Errorsの挙動を確認するために、UserモデルとCommentモデルを作成します。

rails g scaffold User firstname:string lastname:string email:string
rails g model Comment body:string user:references
rake db:migrate

Userモデルにアソシエーションを追加します。

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :comments
end

ちなみに、Commentモデルを作成したときにuser:referencesを追加したので既にアソシエーションがついています。

# app/models/comment.rb
class Comment < ActiveRecord::Base
  belongs_to :user
end


2. Better_Errorsをインストール

では、さっそくRailsにBetter_Errorsをインストールしていきましょう。

まずは、GemfileにBetter_Errorsを追加します。

# Gemfile

group :development, :test do
  gem 'better_errors'     # 開発中のエラー画面をリッチにする
  gem 'binding_of_caller' # 開発中のエラー画面にさらに変数の値を表示する
end

Bundlerでgemをインストールします。

bundle install

では、rails sでサーバーを起動し、存在しないUser IDを指定してエラーを発生させましょう。
http://localhost:3000/users/1000にアクセスすると、エラーが発生しBetter_Errorsによりリッチなエラー画面が表示されます。

f:id:nipe880324:20141025005146p:plain:w480

左側にスタックトレース、右上にソースコードと対話式console、右下にリクエストパラメーターや変数が表示されています。
エラー画面としてはとても見やすいですね。


以上です。
Better_Errorsを使うことで、開発中のエラー画面の情報が増えるので、開発効率も上がること間違いないでしょう。

参考文献