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>
これで、以下のようなダイアログボックスが出てきます。
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>