LoginSignup
5
5

More than 3 years have passed since last update.

Railsのlinkd_toタグ

Posted at

はじめに

railsのlink_toメソッドの書き方をまとめました。

目次

  1. link_toメソッドとは
  2. 基本的な書き方

1. link_toメソッドとは

link_toメソッドとはビューで使用するhelperメソッドです。
リンクを表示させたい時に使用し、htmlのaタグを生成してくれます。
link_toメソッドにリンクとして表示する文字列とリンク先を引数として渡すことで、リンクを表示させることができます。
以下にlink_toメソッドの基本的なソースコードの書き方の紹介をしていきます。

2. 基本的な書き方

  • 第一引数にリンクのテキスト
  • 第二引数にパス、URLの指定

これらを引数として渡すことでリンクを作成することができます。

URLやパスを使用する方法

  • URLを用いる場合
<%= link_to 'Yahoo', 'http://www.yahoo.co.jp/' %>
  • パスを用いる場合
<%= link_to ‘ユーザー一覧’, ‘/users/index’ %>

ルーティングを使用する方法

同じアプリケーション内へのリンクを作成する場合は以下を使います。
「config/routes.rb」で設定しているルーティングの名前に「_path」をつけたものをリンク先として指定します。
ルーティングの名前を確認するときは以下のコマンドを使います。作成したアプリケーションで実行します。

ターミナル
rails routes
   Prefix        Verb       URI Pattern                  Controller#Action
   incomes       POST       /incomes(.:format)            incomes#create
   new_income    GET        /incomes/new(.:format)        incomes#new
   edit_income   GET        /incomes/:id/edit(.:format)   incomes#edit
   income        PATCH      /incomes/:id(.:format)        incomes#update
                 PUT        /incomes/:id(.:format)        incomes#update
                 DELETE     /incomes/:id(.:format)        incomes#destroy

例えば、incomes_controllerのnewアクション(新規作成画面)にリンクを貼りたいときは以下のように書きます。

  • Prefixを用いる場合
<%= link_to '新規作成’, new_income_path %>
  • URI Patternを用いる場合
<%= link_to '新規作成’, ‘/incomes/new’ %>

idを指定する必要があるとき

上記のURI Patternにidを含むものがありますが、これはどの「income」についての編集画面にリンクを設定するのかというのを表しています。
「edit_income_path」にincomeのidを引数としてわたすことで、インカムデータのidを元にリンク先を設定してくれます。

methodオプションを使用する方法

link_toメソッドの引数にはHTTPメソッドを指定することができます。何も指定しなければGETとなります。書き方は以下の通りです。

<%= link_to ‘削除’, income_path(params[:id]), method: :delete %>

また、id属性やclass属性を設定することもできます。

do~endを使用する方法

link_toメソッドは以下のようにdo~endのブロックを使って記述することもできます。

<%= link_to income_path, class: 'hoge' do %>
  <div>a</div>
      <h4>b</h4>
       <p>c</p>
<% end %>

link_to do ~ end の中の要素は同時にリンクできるようになります。

参考リンク

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5