0
1

More than 3 years have passed since last update.

link_toメソッドの具体的な仕組み

Posted at

Scaffoldでプロジェクトを作ると下記のようなリンクがindexなどに生成されるとおもうが、link_toメソッドの中に何があるのかいまいち理解せずに進めてしまっていた。

<% @products.each do |product| %>

----省略ーーー
<span><%= link_to 'Show', product %></span> 
<span><%= link_to 'Edit', edit_admin_product_path(product) %></span> 
<span><%= link_to 'Destroy', admin_product_path(product), method: :delete, data: { confirm: 'Are you sure?' } %></span>

Showは表示される名前であることはわかると思います。

しかしproductってなんだ??

多分eachメソッドのproducなんだろうけどproduct単体でいるのがよくわからない。。。

実はこれ省略されているんです!!
参考

<span><%= link_to 'Show', product_path(product) %></span>

これが省略せずに書いたものです。productはパラメーターとして渡されているんですね。
下記の流れをちゃんと把握しているとよく理解できると思います!

  • 画面からリンク押下してURLとHTTPメソッドがリクエストされる
    • それが ターミナルにログとして出る
  • コントローラーで想定したアクションが呼び出される
    • どのコントローラー、アクションが選択されたかログとして出る
    • アクションの途中で値が見たくなれば pやputs でできる
  • レスポンスして画面が表示される
0
1
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
1