Railsプロジェクトで開発時に便利なGem 5選

こんにちは、水谷です。

ギルドワークスでは様々なRailsのプロジェクトに取り組んでいますが、Railsでプロジェクトを作成するときにいれておいて便利だった開発用のgemをご紹介します。

Pry Rails

https://github.com/rweng/pry-rails

Rubyでメソッドの挙動を確認したり、簡単なコードを実行したいときにIRBが便利ですが、pryはさらに出力結果を見やすくしてくれたり使い勝手が強化されています。

pry-railsはRailsプロジェクトでpryを使えるようにし、デバッグを非常に楽にしてくれます。

導入は、以下をGemfileにを追加して、

gem 'pry-rails', group: :development

bundle installします。

$ bundle install

あるタイミングでオブジェクトがどうなっているんだろうというときに、例えば、コントローラのどこかにbinding.pryというのを記述します。

class HomeController < ApplicationController
  def index
    @hello = 'Hello'
    binding.pry
  end
end 

該当のビューをブラウザで開くと、rails serverを立ち上げているターミナルがbinding.pryを埋め込んだ箇所でrails consoleが起動します。

Started GET "/" for ::1 at 2015-04-28 09:38:23 +0900
Processing by HomeController#index as HTML

From: /Users/hirotaka/Documents/workspace/hirotaka/development-gems/app/controllers/home_controller.rb @ line 4 HomeController#index:

    2: def index
    3:   @hello = 'Hello'
    4:   binding.pry
    5: end

[1] pry(#<HomeController>)>

これで、binding.pryしたタイミングのインスタンスの情報を参照したり、変数を代入したりすることができます。

[1] pry(#<HomeController>)> p @hello
"Hello"
=> "Hello"
[2] pry(#<HomeController>)>

また、別途pry-navというgemをいれておくとnextを入力するとステップ実行をすることもできるようになります。

Quiet Assets

https://github.com/evrone/quiet_assets

標準のままのログだと、

quiet1

これだと何かログを参照したいときに埋もれてしまいますね。

Gemfileにgem 'quiet_assets', group: :developmentを追加して、bundle installして、同じページを開きます。

quiet2

ログが流れにくくなり、何か問題があってもログをおいやすくなりました。

Rails Panel

https://github.com/dejan/rails_panel

期待通りにデータが表示されず、どんなSQLが発行されているのか確認したいときがよくあります。ログをみていけばいいのですが、ターミナルとブラウザをいきいきするのも手間ですよね。

そこで、このgemをいれるとそういった情報をブラウザで確認できるようになります。

Gemfileにgem 'meta_request', group: :developmentを追加して、bundle installします。

Chromeウェブストアから拡張をインストールします。

https://chrome.google.com/webstore/detail/railspanel/gjpfobpafnhjhbajcjgccbbdofdckggg

デベロッパーツールを開いて、Railsタブが追加されたので、そのタブを開いて、該当のページを開きます。

rails_panel1

そうすると、どんなSQLが発行されているか参照することができます。

SQL以外にもパラメータ、ログやエラーなども参照することができます。

Bullet

https://github.com/flyerhzm/bullet

N+1問題って開発しているときはデータが少ないので気付きにくいですよね。

このgemを導入すると、N+1問題が発生する箇所を実行すると通知をしてくれます。

gem 'bullet', group: :developmentをGemfileに追加して、bundle installします。

通知の仕方はいくつあるのですが、私はだいただい下記のようにしています。

config.after_initialize do
  Bullet.enable = true
  Bullet.alert = false
  Bullet.bullet_logger = true
  Bullet.console = true
  Bullet.rails_logger = true
  Bullet.add_footer = true
end

これでログなどにN+1問題が発生した際に出力されます。

NewRelic

NewRelicは有名なパフォーマンス監視するWebサービスなのですが、ローカル開発用でもパフォーマンスのボトルネックになっている箇所を特定したりするのに使えます。

NewRelicにログインして、newrelic.ymlをダウンロードします。ダウンロードしたファイルをconfig/配下に保存し、Gemfileにgem 'newrelic_rpm'を追加して、bundle installします。

これでrails serverを立ち上げて、/newrelicに接続します。

http://localhost:3000/newrelic

newrelic

まとめ

定番どころではありますが、もし導入がまだなものがあればぜひ試してみてください。

この記事を読んでギルドワークスに興味を持たれた方はお気軽に【ギルドワークスに依頼する】をご覧の上、お問合せください。

(アイキャッチ画像はhttps://unsplash.comより引用しました。)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中