技術

【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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

[Bitbucket] fatal: Could not read from remote repository.

どうも中田です こないだリモートリポジトリにPushできないんすけど〜という話を …

[Xcode] SDK Version Issue – This app was built with the iOS 12.0 SDK. Starting March 2019, all iOS apps submitted to the App Store must be built with the iOS 12.1 SDK or later, included in Xcode 10.1 or later.

こんにちは。たなかです。 2019年、ブログ初更新になります。今年もよろしくお願 …

no image

HTMLタグだけでアコーディオンを実装する

こんにちは htmlタグのdetailsというのは知っていますか? 僕も初めて知 …

Local by Flywheelでローカルに本番環境を作るときのエラーを解消する

こんにちは Local by Flywheelはwordpress環境をローカル …

no image

【Angular】Full calendarで横スクロールを実装

こんにちは Full Calendarにはいくつかの表示モードがあります。 こち …