LoginSignup
0
0

More than 1 year has passed since last update.

【Rails】pry-byebugを使ってdebugする方法

Posted at

対象者

  • byebugを使ってデバックしたい方

目的

  • byebugを使ってアプリの状態を確認すること

実際の手順と実例

1.pry-byebugのインストール

Gemfileに下記を追加

group :development do

:
:
  gem 'pry-byebug'

end

その後bundle installを実行します

2.使い方

  • rbファイルではbinding.pry
  • erbファイルでは<% binding.pry %>

例としてブログの新規投稿を行うアプリを使います。

1.Controllerで使う場合
class BlogsController < ApplicationController

:
:

  def create
    blog = Blog.new(blog_params)
    binding.pry   

    blog.save
    redirect_to blog_path(blog.id)
  end

:
:

end

上記のようにsave前にbinding.pryをいれました。
このままサーバーを立ち上げてもロードされず、処理が一度止まります。

ここでTerminalに戻ると

From: /home/ec2-user/environment/CARAVAN/app/controllers/blogs_controller.rb @ line 22 BlogsController#create:

  18: def create
  19:   blog = Blog.new(blog_params)
  20:   blog.save
    21:   binding.pry
=>22:   redirect_to blog_path(blog)
  23: end

[1] pry(#<BlogsController>)>

21行目で処理が止まっているのが分かります。
コマンドで「blog」と入力すると、変数blogの内容が表示されます。

[1] pry(#<BlogsController>)> blog
=> #<Blog:0x00007f20ec1130f0 id: nil, title: "テストタイトル", category: "テストカテゴリー", body: "テスト本文", created_at: nil, updated_at: nil>
[2] pry(#<BlogsController>)>

今回は何事もなく稼働しています。

例えば、ここで変数に何も入っていなければ(nil)、19行目に変数がうまく渡っていない、20行目でsaveがうまく行えていない等の可能性が考えられるので、エラー箇所がこのあたりにあると考えられます。

参照

Rails tutolial 7.1.3 debuggerメソッド

投稿者コメント

エラー文が出ないときにpry-byebugにかなり助けられました!
いまではアプリ作るときGemには必ず入れておきます

My Profile

プログラミング学習歴②ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り等ございましたら、コメント欄でご教授いただけると幸いです。 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0