技術

【Rails】そろそろデバッグしましょうか

投稿日:

どうも中田です。
今までrailsの開発はIDEを使わずテキストエディタだけでやってきたのですが、
いい加減デバッガでも使おうかと思い、今回に至ります。

 

pry-debuggerを使ってのデバッガです。
pryとはrubyのデバッガのirbのパワーアップ版って感じのイメージでしょうか。

 
 

Gemfileに追加

pry-debuggerやらその他もろもろをGemfileに書きます。

group :development do
  gem 'pry-rails'
  gem 'pry-doc'
  gem 'pry-byebug'
  gem 'pry-stack_explorer'
end

終わったら、$ bundle installしておきます。
 
 

ブレイクポイント追加

ソースコード内にbinding.pryを入れるとその次の行がブレイクポイントになります。
そして、$ rails sで起動

 
 

該当の部分に達すると…

 
 

     4: class LoginController < ApplicationController
     5:   include Ftp
     6: 
     7:   def sign_in
     8:     binding.pry
 =>  9:     e_mail = params['e_mail']
    10:     password = digest(params['password'])
    11:     uuid = params['uuid']
    12:     platform = params['platform']
    13:     device_token = params['device_token']
    14: 
[1] pry(#<LoginController>)> 

 

はい、止まりました。
これでデバッグ可能です。

 
 

ちょっとコマンド

これがあればとりあえずってものです。
調べればもっとたくさんあります。

コマンド 説明
$ ソース表示
p xxxx xxxxの内容を表示
next ステップオーバー
step ステップイン
continue 次のブレイクポイントまで
finish ステップアウト

 
 

備考

前のコマンドをEnterだけで連続して実行できるという設定です。

Pry::Commands.command /^$/, "repeat last command" do
  _pry_.run_command Pry.history.to_a.last
end

 
 

久しぶりですが、こんなところで。

-技術
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

【rails】websocket-rails動きません!

どうも中田です。 巷ではrailsでwebsocketを動かすのは簡単♪簡単♪っ …

no image

RailsとAngularの省略できるコマンドいくつか

こんにちはコーテッグのこやまです。 私はTypoが多い方なので、コマンドは短い方 …

[AWS Cli] brew install awscli が失敗!

どうも中田です awsコマンドがないよーって言われたので、再度インストールするこ …

セレクトボックスにfont-awesomeのアイコンを使うときは注意が必要。

セレクトボックスの中にfont-awesomeのアイコンを表示したい。 そんなと …

[Slack] スラッシュコマンドでamazon検索

Slackネタです。 amazonがSlackの買収を検討しているとかいないとか …