| 9月 28th, 2008

 Rails で以下のメソッドで 該当アクションへの URL を生成することが出来るけれども、呼ぶ場所によって挙動が違ってちょっとつまずいた。

url_for :controller => 'user', :action => 'show', :id => 100

動かしてるサーバが http://localhost:3000 とすると、以下の様になりました。

Controller内
http://localhost:3000/user/show/100
View, Helper内
/user/show/100

View, Helper 内で絶対URL をとるのに一番簡単そうなのは、config/route.rb に以下のように書いて、それを呼ぶという感じかなぁ…。

config/route.rb

ActionController::Routing::Routes.draw do |map|
  map.user '/user/show/:id', :controller => 'user', :action => 'show'
end

viewやhelperで

config/route.rb で map.user と定義すると、user_url() が定義されて使えるようになるので、viewやhelper で以下の感じで以下のようにすると絶対URLが取れます。

user_url(:id => 100)

View から絶対URL を取りたいとすると、どっか外部に戻りURLをくっつけて投げる処理などで使うくらいしか思いつかないです。

2 comments

  1. TREE

    11月 26th, 2008

    学校からぐぐったらここがひっかかったwww

    “entries”, :action => “index”, :o nly_path => false %>

    これでビューからでも絶対パス取れるんじゃない?

  2. TREE

    11月 26th, 2008

    なんか表示がおかしく><

    url_for :controller => “entries”, :action => “index”, :o nly_path => false

Trackbacks and Pingbacks

Leave a Comment


download the hurt locker  
UA-682965-1