対象者
- 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がうまく行えていない等の可能性が考えられるので、エラー箇所がこのあたりにあると考えられます。
参照
投稿者コメント
エラー文が出ないときにpry-byebugにかなり助けられました!
いまではアプリ作るときGemには必ず入れておきます
My Profile
プログラミング学習歴②ヶ月目のアカウントです!
プログラミングスクールで学んだ内容や自分が躓いた箇所等のアウトプットの為に発信しています。
また、プログラミング初学者の方にわかりやすく、簡潔にまとめて情報共有できればと考えています。
もし、投稿した記事の中に誤り等ございましたら、コメント欄でご教授いただけると幸いです。