いまさら聞けないRailsでデバッグする便利な方法(Ruby1.9.x対応版)
Railsでの開発をしているとき、ブラウザは何を使ってますか?
私はFirebugが使いたいのでFirefoxがメインでしたが、最近はGoogleChromeが多いです。
GoogleChromeにもディベロッパーツールというのがあり、ブラウザとサーバ間の通信内容や各ファイルのロードに掛かった時間などを見ることができます。
どちらの開発者向けツールでも、Javascriptのソースにブレイクポイントを設置し、その時の変数の中身を見ることなどもできます。これらのツールがないと仕事にならないくらいです。
では、サーバ側は?
ということで、Rails3でかつRuby1.9.xの場合でのデバッグ方法についてです。
では、さっそく
準備する手順
1、Gemfileに追記
gem "ruby-debug19"
2、「bundle install」を行う
3、ソースの止めたい場所に「debugger」と書く
以上で準備完了です。
実際に使ってみる
デバッグオプション付きでサーバを起動させます。
$ rails s --debug
次に、ブラウザでアクセスするなどして、デバッグしたい箇所が通るように動かします。
debuggerと書かれた場所に処理が到達すると、サーバを起動している画面が止まります。
たぶん
(rdb:4)
などと表示されていると思いますので、コマンドを入力し様子を見てみましょう
list : 周辺のソース表示
p 変数名 : 変数の中身。例えばparamsやrequestなど見ると、サーバが受け取った変数を見られます。
cont : 次のbreakpointまで実行
という感じです。
どうですか?簡単で便利です。
実は知らなかった/忘れてたという方は、こっそりお試しを。
追記
もし「開発ではpowを使っているんだけど」という人は、id:mat_akiさんが書かれている記事を参考に。
http://d.hatena.ne.jp/mat_aki/20110523/1306143197