背景
記事詳細を表示する際に、ユーザー名を表示したかったが、どこに格納されているのかわからず、paramsの中身を調べることにした。その過程のログを残しておく。
dockweの場合は、これを参考
https://qiita.com/terufumi1122/items/64533b9ddac9941b59e4
やり方
gemをインストール (gem 'pry-rails')
↓
bundle install
↓
調べたい該当箇所に、binding.pryを入力。
↓
rails s
↓
該当箇所をブラウザでぽちぽち。ターミナルに、入力した箇所で止まったログが表示される。
↓
そして、[1] pry(#)>
と表示されるから、そこに知りたい文字列を入力。
qiita.controller.rb
12: def show
13: #一つの投稿のみを取得したい。
14: @post = Post.find(params[:id])
=> 15: binding.pry
16: end
試しに上から順に、
id
params[:id]
@post.content
@post.user
と入力してみた!
[1] pry(#<PostsController>)> id
NameError: undefined local variable or method `id' for #<PostsController:0x00007f9f26ea4828>
from (pry):1:in `show'
[2] pry(#<PostsController>)> params[:id]
=> "1"
[3] pry(#<PostsController>)> @post.content
=> "Temporibus vel ratione aperiam alias aut libero reiciendis voluptatem quo autem rerum doloribus adipisci a voluptas modi illo qui ipsum aliquid voluptatum nventore at esse maiores ut omnis accusantium animi ducimus qui autem architecto excepturi itaque ex minus facere soluta inventore molestias id unde vero sunt aliquam quia dolorum quae placeat deserunt aspernatur qui suscipit quod dolorem maxime nulla id molestiae incidunt aut beatae aut voluptate aliquid dicta velit sit sint eum possimus nihil non voluptatem provident enim assumenda consequatur fugiat."
[4] pry(#<PostsController>)> @post.user
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ (pry):4:in `show'
=> #<User:0x00007f9f26c77b68
id: 1,
name: "swifty_kazu",
email: "hogehogehoge",
created_at: Fri, 16 Oct 2020 02:53:43 UTC +00:00,
updated_at: Fri, 16 Oct 2020 02:53:43 UTC +00:00,
password_digest: [FILTERED],
admin: true>
[5] pry(#<PostsController>)> @post.user.name
=> "swifty_kazu"
[6] pry(#<PostsController>)>
exit!で抜け出せる
参考記事
https://qiita.com/tomoharutt/items/6b12af3dc5eb8dfb9801
https://pikawaka.com/rails/params#params%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86
https://qiita.com/k0kubun/items/b118e9ccaef8707c4d9f