#【その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を駆使して、デバッグに強くなろう!
ではまた!