0
0

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.

[rails]binding.pryで処理内容を確認する

Posted at

#やりたいこと
@itemに入っている中身valueを知りたい

items#show
  def show
    @item = Item.find(params[:id])
  end
#show.html.erbの記述
<%= link_to '購入画面に進む',item_orders_path(@item.id)%>

処理内容
"購入画面に進む"ボタンを押すとorders#index(/items/:item_id/orders(.:format))に画面遷移する。
購入ボタンを押すと@itemの内容を参照するようになるがどのような情報を抜き出しているのか見たい

#処理内容の確認方法

1.gem 'pry-rails'をGemfileに記述しインストールする
2.items#showにbinding.pryと記述する

  def show
    @item = Item.find(params[:id])
    binding.pry
  end

binding.pryによってshowアクションが実行された時処理を止めている

3.実際にブラウザを開きshow.hrml.erbのページを開くshowアクションを実行する。

4.処理が止まるのでコンソールのサーバーを見る

app/controllers/items_controller.rb:41 ItemsController#show:
    40: def show
 => 41:   binding.pry
    42: end

[1] pry(#<ItemsController>)>

showアクションで処理が止まっていることがわかる

5[1] pry(#)>に@itemと記述する

[1] pry(#<ItemsController>)> @item
=> #<Item:0x00007f9ac9e01300
 id: 8,
 item_name: "ラーメン",
 info: "いい味出てる!",
 category_id: 3,
 status_id: 3,
 shipping_id: 3,
 area_id: 5,
 schedule_id: 4,
 price: 1000,
 user_id: 1,
 created_at: Fri, 04 Sep 2020 01:29:20 UTC +00:00,
 updated_at: Fri, 04 Sep 2020 01:29:20 UTC +00:00>

これで@itemに中身valueがわかった!

#補足
[1] pry(#)>に@item.idとうつと

[2] pry(#<ItemsController>)> @item.id
=> 8

@item.id の内容が”8”ということがわかった

#まとめ

<%= link_to '購入画面に進む',item_orders_path(@item.id)%>
item_orders_pathに画面遷移したかったらitem_idが指定できないと遷移できない。

item_orders  /items/:item_id/orders(.:format)  orders#index
<%= link_to '購入画面に進む',item_orders_path(@item.id)%>

(@item.id)と指定することでの
:item_idに必要な情報を抜き出すことができた!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?