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 などが載せられている。

メゾット

ルーティングを設定すると自動的にリンク生成のためのメソッドも定義される。上記のようなルーティングが生成された場合には、下記の表のようにメソッドが生成される。

メゾット2

・コード
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 へのリンクを追加する為に使う。

いいなと思ったら応援しよう!