はじめに
railsのlink_toメソッドの書き方をまとめました。
目次
- link_toメソッドとは
- 基本的な書き方
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 の中の要素は同時にリンクできるようになります。