はじめに
ある程度プログラミングの理解が進んできたところで備忘録と復讐を兼ねて振り返ることにした。
viewからviewに移動するやり方を書いていく。
link_toの使い方
rails routesコマンドを実行するとこんな感じで出てくると思う。
この画面からPrefixを確認することができる
link_to 'リンク名', 'Prefix名 + _path'
・viewヘルパーという
・htmlを自動で作成してくれる (href作成をしてくれる)
○リンク名
⇨viewに文字列として表示したことを記述
○'Prefix名 + path'
⇨rails routesのPrefixを使用する (pathが必要)
【id付きURLパターン時の書き方】
・Prefixに紐づくURLパターンに着目
・URLパターンに :id のような一意に定められない変数が含まれることがある
・一意に定められるとは要するに他に可能性があるかどうか。1パターンしかあり得ない場合は一意に定まるということになる。
・(一意に定まる時は,上の記述のみでOK)
・*(一意に定まる時でもidを持たせても多分いけると思う)
・この場合,'Prefix + _path + (each do | | で生成した値)' と記述
・each do | | で生成した値は,インスタンス変数から生成
・*(インスタンス変数はcontrollerで生成ずみの前提)
私のポートフォリオで言うと
<% @songs.each do |song| %>
<table class="detail-table">
<tbody>
<tr>
<th class="user-show-detail-song">アーティスト名</th>
<th class="user-show-detail-value">曲名</td>
</tr>
<tr>
<td class="user-show-detail-song"><%= song.artist %></td>
<td class="user-show-detail-value">
<%= link_to song_path(song.id) do %>
<%= song.title %>
<% end %>
</td>
</tr>
</tbody>
</table>
<% end %>
・このインスタンス名songには、インスタンス変数@songsの複数のキャッシュが格納されていく
・column名 =id となる値を URLパターンの :id へ変換
・urlの:idところに引数の:id を含んだ形で記述したことになる