2011-07-06 4 views
2

레일 2에 다음과 같이 슬래시를 : 컨트롤러 매개 변수에 추가하여 도메인 상대 URL을 얻을 수 있습니다. 이와 같은 :레일 3 도메인 상대 URL

# anywhere in the app, Rails 2 
>> url_for(:controller => '/posts', :action => 'index') 
=> "/posts" 

그러나, 레일 3, 이것은 당신이 중첩 컨트롤러에 경우 작동하지 나타납니다. 예를 들어, Home :: Foo에 있으면 작동합니다. 나는 홈 :: 푸 :: 바에있어 경우 작동하지 않습니다

# in Home, works 
>> url_for(:controller => '/posts', :action => 'index') 
=> "/posts" 

# in Home::Foo, works 
>> url_for(:controller => '/posts', :action => 'index') 
=> "/posts" 

# in Home::Foo::Bar, does not work 
>> url_for(:controller => '/posts', :action => 'index') 
=> "home//posts" 

질문은 다음과 같습니다 어떤 적절한 레일에게 있습니다 url_for를 사용하여 도메인 상대 링크()를 받고 3 방법은?

답변

1

게시물의 안락한 경로를 사용할 수 없습니까?

routes.rb 당신이에서 어디에서나 '/ 글'을 생성해야

map.resources :posts 

anyview.html.erb

posts_path 

.

+0

문제는 모든 컨트롤러에 대해 routes.rb를 수정해야한다는 것입니다. 그것은 나쁜 해결책이 아니지만': controller =>'의 목적을 무의미하게 만듭니다. 그렇지 않습니까? –

+1

어쩌면 나는 편안한 경로를 사용할 수 있었지만, a) 내 앱에서 편안한 경로를 사용하지 않고 b) @ Yar가 말한 것처럼 어디서나 업데이트해야합니다. – dodgeandburn