Rails基礎 link_toヘルパー
link_toとは
viewでリンクを表示させることが出来る。最終的には<a>
タグを生成して表示される。
helperメソッドの1つ。
link_toメソッドに表示させたい文字列とリンク先を引数として渡す必要がある。
link_to '表示させる文字列',リンク先のパス(URL)
URLを指定
<%= link_to 'Title','http://www…./' %>
ルーティングの名前で指定
ルーティングの名前の後ろに_path
をつけてあげると同じアプリケーション内へのリンクを作成してくれる。
基本的な使い方。
$rails routes
を実行したときに表示されるroute一覧を見て、Prefix
の列に表示されている名前を指定してあげればOK。
# users#new <%= link_to '新規登録', new_user_path %>
また、idを指定してあげることで特定のユーザーの詳細ページにリンクしたい場合などは、パスに引数として変数(この場合はuser
)を渡してあげることで、
この変数に入っているユーザーデータのidを元にリンク先をいい感じに解釈して設定してくれる。
# users#show <%= link_to User.Name, user_path(user) %>
リンク関連のビューヘルパーについて
link_to の他にもurl_for、link_to_if / link_to_unless、link_to_inless_current
を紹介してくれています。
その他ヘルパー
画像にリンクを貼る
上記では、対象の文字列をクリックすることでリンク先に飛べるようになりますが、
画像にリンクをつけたい場合は、image_tag
ヘルパーというものを使用すれば良い。
また画像はassets/images
ディレクトリがデフォルトで用意されているのでそこに入れればOK。
画像の表示のみ
<%= image_tag 'image.png' %>
また、画像にクラスを指定したい場合は
<%= image_tag 'image.png' class: 'logo'%>
のように記述すれば適用させてくれる。
画像にリンク
<%= link_to image_tag('image.png' class: 'logo'), root_path %>
このようにlink_to
とimage_tag
を組み合わせると画像に対しリンクが貼られるようになる。