#やりたいこと
@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に必要な情報を抜き出すことができた!