2009-05-11 11 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"を入れて試してみて、サーバーを正常に起動してください。

するとRailsが追加されます/ myappに/すべてのルートに

0

おかげであなたの答えのためにたくさん!

:path_prefixのオプションはmap.fooには使用できません。常にそうとは限りません(エンドユーザーはルートを気にせずにプレフィックスを設定する必要があります)。

私は、次のうち指:

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'} 
関連する問題