「link_to 変数」で詳細画面に遷移
ブログ投稿数がいたずらに増えるのが嫌だったのですが、一つの課題から得られる知識が多くて溜めていると消化不良を起こしそうなので簡単に残しておきます。
Railsの内部構造から紐解いていこうと思ったものの、コードが全く理解できずに挫折したため、自分の中でざっくり整理するための備忘録。
link_to
想定
ある投稿のタイトルリンクからその詳細ページに飛びたいとき
思考停止で下記の書いてみるとエラーになってしまった。
<%= link_to @post.title, post_path %>
Railsガイドを参考に以下のように書き換える。
# ブロックを使用 <%= link_to @post do %> <%= @post.title %> <% end %>
link_to "文字列", @post #=> <a href="/posts/1">文字列</a>
post_path(@post)
みたいに書いても/posts/:id
リンクが生成される。
↑post_pathというURLヘルパーメソッド(詳細画面へのURLを生成する)
に特定の変数を引数として渡すことで、具体的にどの投稿の詳細画面に遷移するのか指定している。
prefixは接頭辞という意味 post_pathのpost部分は接頭辞
link_to "文字列", @post
ある投稿を取得した変数@postを表記することで、その投稿の詳細ページに飛ばされる。 理屈は理解できないがニュアンスなら分かるみたいな感じがする😓
またしばらくしたらこんがらがると思う。
ActionView::Helpers::UrlHelper
【Rails】 link_toの使い方をマスターして簡単にリンクを作成しよう! | Pikawaka
RailsのGithub
rails/url_helper.rb at 984c3ef2775781d47efa9f541ce570daa2434a80 · rails/rails · GitHub