3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

binding.pryでデバック ❏Rails❏

Last updated at Posted at 2019-11-25

#【その1】gemを追加

Gemfile
gem 'pry-rails'
bundle install

いつものごとくサーバーを再起動します。
rails s

なぜなら、サーバーを起動した際にgemが反映されるからです。

#【その2】デバックしたいところにbinding.pry

tweets_controller
def create
  Tweet.create(tweet_params)
  binding.pry
end

実際のページでcreateアクションを動かします。
投稿ができずに処理が止まるはずです。

#【その3】ターミナルで値を確認
ターミナルを見ます。
paramsと打つと、何が入っているのかわかります。

[1] pry(#<TweetsController>)> params
=> <ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"cFfq1a/zC8fMEriJKXNzupYtBniyVra94V7SKbl3I1vDa29/Lbiy5BI9ARlki7ASU9wZ6v77fYVZ69mPHtAs9A==", "tweet"=><ActionController::Parameters {"text"=>"ワッショイ!"} permitted: false>, "commit"=>"Create Tweet", "controller"=>"tweets", "action"=>"create"} permitted: false>
[2] pry(#<TweetsController>)> params[:text]
=> nil
[3] pry(#<TweetsController>)> params[:tweet][:text]
=> "ワッショイ!"

この場合textの値は二重括弧で囲われているため、params[:text]ではなく、params[:tweet][:text]で取得できます。

#【その4】exitで処理を再開する

[4] pry(#<TweetsController>)> exit

exit忘れるとずっと処理が止まったままです。



####binding.pryを駆使して、デバッグに強くなろう!
ではまた!
3
6
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
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?