Rails link_to
link_to は Rails が提供する便利メソッドで、
link_to 表示文字列, リンク先
という形で記述します。
表示文字列 は message.id つまりメッセージの id であり、リンク先 は message となっている。
例)
link_to 表示文字列, URL
m = Message.find(1) #id 1 の messags テーブルのレコードを取得
link_to 'message.id' , message_path(m)
<a href = "/messages/1"> message.id </a>
link_to 'message.id' , prefic_path
message_path(m)
message_path(id:m.id)
リンク生成のためのメソッド ルーティング($ rails routes)
Prefix として messages, new_message などが載せられている。
ルーティングを設定すると自動的にリンク生成のためのメソッドも定義される。上記のようなルーティングが生成された場合には、下記の表のようにメソッドが生成される。
・コード
link_to 'message.id' , message_path(m) or link_to 'message.id' , prefic_path
<a href = "/messages/1"> message.id</a>
・図1
Prefix Verb URI Pattern Controller#Action
message GET /messages/:id(.:format) messages#show
・図2
ルーティング リンク生成メソッドの使用例 生成されるリンク
show message_path(@message) /messages/1
link_to は show(ルーティング) に当てはまる!
見事に Prefix + _path となっていることに注目してください。
また、:id が必要なものはインスタンスを特定する必要があるので引数として @message などのインスタンスが必要です。
この法則で自動生成されるメソッド(prefix_path)を使って、リンクを生成していきます。
index から show へのリンクを追加する
show には URL を直打ちしなければアクセスできません。
そのため、 index の View に show へのリンクを追加する為に使う。