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