13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby on Rails】link_toメソッドの使い方。URLの指定方法まとめ

Last updated at Posted at 2020-08-27

【Ruby on Rails】link_toメソッドの使い方。URLの指定方法まとめ

Railsのviewファイルに動的なリンクの設置はRailsのビルドインヘルパーの一つである、link_toメソッドを使う。

<%= link_to 'アンカーテキスト', パスの指定 %>

パスの指定方法は複数ある。

  1. コントローラー名で指定(アクション指定なし)
  2. コントローラーとアクションを指定
  3. コントローラーとアクションとidを指定
  4. pathで指定
  5. pathで指定(idを指定)
  6. URLで指定
  7. パスを指定しない場合
  8. パスとアンカーテキストを指定しない場合
  9. 実際の記述例

### 1. コントローラー名で指定(アクション指定なし) コントローラー名で指定する場合はオプションに下記を設置する。

controller: 'コントローラー名'

アクションの記載をしない場合はindexが指定される。
「コントローラー名#index」に該当するページへのリンクが設置される。

`<%= link_to 'アンカーテキスト', controller: 'コントローラー名' %>` 

### 2. コントローラーとアクションを指定

controller: 'コントローラー名', action: 'アクション名'

指定した「コントローラー名#アクション名」に該当するページへのリンクが設置される。

`<%= link_to 'アンカーテキスト', controller: 'コントローラー名', action: 'アクション名' %>` 

### 3. コントローラーとアクションとidを指定 `controller: 'コントローラー名', action: 'アクション名', id: id番号`

指定した「コントローラー名#アクション名」の該当するページの末尾に指定したid番号がついたページへのリンクが設置される。

<%= link_to 'アンカーテキスト', controller: 'コントローラー名', action: 'アクション名', id: プロパティ名.id %>`

id番号は整数でも指定可能
 ┗例 id: 1


### 4. pathで指定 ルーティングにはパス(末尾「_path」)が設定されている。このパスを指定することで該当ページへのリンクを設置できる。

[パスprefix]_path

パスはコマンドrails routesで確認できる。

Prefix Verb URI Pattern Controller#Action
articles_index GET /articles/index(.:format) articles#index
<%= link_to 'アンカーテキスト', [prefix]_path %>`

### 5. pathで指定(idを指定) pathを指定した後にカッコでidを格納した変数を記述すると、指定したidに該当するページへのリンクが作成される。

[パスprefix]_path(id番号)

<%= link_to 'アンカーテキスト', [prefix]_path(id番号) %>`

### 6. URLで指定

URLのフルパスで指定することも可能。

静的
<%= link_to 'アンカーテキスト', 'URL' %>`

変数展開を使うことで動的にURLを指定することも可能。

・ダブルクオテーションで囲む。
#{ }で記述する。

動的
<%= link_to 'アンカーテキスト', "https://~/#{変数や式}" %>`

## 7. パスを指定しない場合 パスを指定しない場合、 **現在のコントローラーのアクション**へのリンクが設置される。(リロード)
<%= link_to 'アンカーテキスト' %>`

## 8. パスとアンカーテキストを指定しない場合 link_toのみで、パスとアンカーテキストを指定しない場合、

▼パス
「現在のコントローラーのアクション」(リロード)

▼アンカーテキスト
「コントローラー名/アクション名/」

となる。

<%= link_to %>`

<↓例>
image.png


## 実際の記述例
<%= link_to '一覧ページ', controller: 'articles' %><br>

<%= link_to '編集ページ', controller: 'articles', action: 'new' %><br>

<%= link_to 'id:1の詳細ページ', controller: 'articles', action: 'show', id: 1 %><br>

<%= link_to 'テックアカデミー(静的)', "https://techacademy.jp/magazine/7286" %><br>

<% number = '7268' %>
<%= link_to 'テックアカデミー(動的)', "https://techacademy.jp/magazine/#{number}" %><br>

<%= link_to %><br>
<%= link_to 'パス指定なし' %><br>

以上。
13
13
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
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?