SuzuBlog

webのお勉強はじめたばかりの初心者。備忘録

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) %>
リンク関連のビューヘルパーについて

qiita.com

link_to の他にもurl_for、link_to_if / link_to_unless、link_to_inless_current

を紹介してくれています。

その他ヘルパー

middlemanapp.com

画像にリンクを貼る

上記では、対象の文字列をクリックすることでリンク先に飛べるようになりますが、

画像にリンクをつけたい場合は、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_toimage_tagを組み合わせると画像に対しリンクが貼られるようになる。