2009-05-11 4 views
2
경로 다음

서버 접두사와 레일 경로

ActionController::Routing::Routes.recognize_path('/myapp/foo') 

이 오류가 발생합니다

map.route 'foo', :controller => 'bar', :action => 'buzz' 

을하면서 내가 경로 옵션

script/server --path=/myapp 

으로 서버를 시작하고

"아니오 경로 일치 ... "

질문 : Rails 빌트인 라우팅이 경로 접두어로 인식되도록하려면 어떻게해야합니까? 감사합니다.

답변

0

이 같은 작업을 수행 할 수 있도록 경로에 사용할 수있는 path_prefix 실제로있다 :/MyApp를/foo는

2

당신에게 경로를 제공해야

map.foo, 'foo', :controller => 'bar', :action => 'buzz', :path_prefix => 'myapp' 
는 environments.rb에 config.action_controller.relative_url_root = "/myapp" 퍼팅 시도 서버를 정상적으로 시작하십시오.

그리고 레일이 추가됩니다/MyApp를/모든 경로에

0

덕분에 귀하의 답변을 많이!

불행히도 map.foo:path_prefix 옵션을 사용할 수 없습니다. 왜냐하면 항상 그런 것은 아니기 때문입니다 (최종 사용자는 경로에 대해 걱정하지 않고 접두어를 설정하거나 설정해야합니다).

path = '/myapp/foo' 

if relative_url_root = ActionController::Base.relative_url_root 
    path.sub!(/\A#{relative_url_root}/i, '') 
end 

params = ActionController::Routing::Routes.recognize(path) 
# => {:controller => 'bar', :action => 'buzz'} 
:

내가 다음 밖으로 손가락