10
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 5 years have passed since last update.

[Rails] link_to, url_for 違い、まとめ

Last updated at Posted at 2018-12-28

rails link_to,url_for の ビューヘルパーまとめ

#link_to
##使い方
link_to(文字列, パス [, オプション, HTMLオプション])

###オプション

オプション 概要
:method HTTPメソッド(:get, :post, :put, :delete)の指定
:remote Ajaxでリンクを処理
:date DATA要素 javascriptに関するパラメータ
HTMLオプション id, class等

##使用例

###1,基本

<%= link_to "Home", myapp_path %>
#=>  <a href="/myapp">Home</a>

###2,コントローラーとアクションからURLを作成。
※引数リストの最後がHashリテラルの場合は{}を省略できる。

<%= link_to 'トップ' , {controller: :microposts, action: :show} , id: :link, class: :menu %>
# => <a href ="/products/show" class="menu" id="link">トップ</a>

###3,HTTPメソッドを指定、クリック時にダイアログを表示

<%= link_to '削除する' , micropost_path(1) , method: :delete, data: {confirm: '実行しますか?' } %>
# => <a data-confirm="実行しますか?" data-method="delete" href="/microposts/1" rel="nofollow">削除する</a>

###4,画像のリンク
link_toには、引数としてimage_tag(画像ファイルのパス)を持つこともできる

<%= link_to image_tag("home.png"), :action => "index" %>
#=> <a href="/myapp"><img alt="Logo" src="/images/home.png"/ ></a>

#url_for

##使い方
url_for(オプション)
###オプション

オプション 概要
:controller コントローラー名
:action アクション名
:host URLのホストを指定
:protocol URLのプロトコルを指定
:anchor アンカー(URLの#以降)を指定
:only_path trueなら、URL全体ではなくパス部分を返す
:trailing_slash urlの最後にスラッシュを付けるか
:user HTTP認証に使用するユーザー名
:password HTTP認証に使用するパスワード

##使用例
###1,基本url_forは現在のコントローラーを基点にURLを作成する

<%= url_for(action: :new) %> #現在のURL "/myapp/microposts/1"
#=>  /microposts/new

###2,idなど、パラメータを指定

<%= url_for(controller: :microposts, action: :show, id: 1, anchor: 'rails' , charset: 'utf8' ) %>
#=> /microposts/1?charset=utf8#rails

###3,only_path(絶対パス)

<%= url_for(controller: :users, action: :signup, only_path: false, protocol: 'https' ) %>
#=>  https://localhost:3000/users/signup

###4,引数にオブジェクトを渡す

<% @micropost = micropost.find(1) %>
<%= url_for(@micropost) %>
#=> /microposts/1

#参考
Ruby on Railsドキュメント#lint_to
Ruby on Railsドキュメント#url_for
rails guide
RailsTutorial

10
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
10
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?