link_toメソッドまとめ

link_toメソッドとは?

link_toメソッドはリンクを生成してくれるRailsのヘルパーメソッドです。
HTMLのaタグに変換されます。

 

基本の形

link_toメソッドの第一引数には表示させたい文字、第二引数には飛びたいページのパスを書きます。

<%= link_to "表示させたい文字", "飛びたいページのパス" %>

#以下のHTMLに変換される
<a href="飛びたいページのパス">表示させたい文字</a>

 

外部サイトへリンク

<%= link_to "Google", "https://www.google.co.jp" %>

#以下のHTMLに変換される
<a href="https://www.google.co.jp">Google</a>

 

tweetsコントローラーのshowアクションへのリンク

パスをURIパターンでかく

<%= link_to "詳細", "tweets/#{@tweet.id}" %>

#以下のHTMLに変換される
<a data-method="get" href="/tweets/11">詳細</a>

 

パスをPrefixでかく

Prefixに続く( )の中には、tweetのidの情報か、その情報を含んでいるオブジェクトを渡します。

<%= link_to "詳細", tweet_path(@tweet) %>

#以下のHTMLに変換される
<a data-method="get" href="/tweets/11">詳細</a>

 

HTTPメソッドオプションつきリンク

<%= link_to "削除", "/tweets/#{@tweet.id}", method: :delete %>

#以下のHTMLに変換される
<a rel="nofollow" data-method="delete" href="/tweets/12">削除</a>

 

確認メッセージを表示

<%= link_to "削除", "/tweets/#{@tweet.id}", method: :delete, data: { confirm: "削除しますか?" } %>

#以下のHTMLに変換される
<a data-confirm="削除しますか?" rel="nofollow" data-method="delete" href="/tweets/12">削除</a>

 

これで、以下のようなダイアログボックスが出てきます。

gyazo.com

class属性・id属性を設定

<%= link_to "新規登録", new_user_registration_path, class: 'post-btn', id: "post" %>

#以下のHTMLに変換される
<a class="post-btn"  id="post"href="/users/sign_up">新規登録</a>

 

ブロックを用いたリンク

<%= link_to "https://github.com" do %>
<footer>
<p>
github
</p>
</footer>
<% end %>

#以下のHTMLに変換される
<a href="https://github.com">
<footer>
<p>
github
</p>
</footer>
</a>

 

すでにリンク先のページにいる時はテキスト表示

link_to_unless_currentメソッドを使うと、リンク先でないページにいる時のみリンクを生成してくれます。
リンク先のページにいる時はリンクではなく、ただのテキスト表示にしてくれます。

<%= link_to_unless_current "トップページ", root_path %>

#トップページにいない時のみ以下のaタグを生成
<a href="/">トップページ</a>