2011-07-21 12 views
1
私は古いクライアントアプリケーションに取り組んでいます

を対(地獄ええ!)は、Windows Serverのすべてのアプリケーションは、単純なキャッチすべてのルートに依存している2003年のRails 2.3.11の下で実行されている:Railsの名前空間のルート - WindowsはLinuxの

map.connect ':controller/:action/:id' 

私はいくつかのネストされたモジュールを持っており、Windows(prod)とMac OS(dev)ではすべて正常に動作しています。

url_for(:controller=>'/settings/users', :action=>:index) 
#=> Settings::Users#index 

最近Mac OSからUbuntu 11.04に変更されました。これらのネストされたルートを除き、すべてが機能します。

url_for(:controller=>'/settings/users', :action=>:index) 
#=> Settings#users 

何が起こっているかについての手掛かりはありますか?なぜこの問題はLinuxのみですか?

+0

':controller => '/ settings/users''は何をしますか?おそらく絶対ファイルシステムのパスとしてそれを取る、 – loosecannon

+0

Nop。これは、アクション 'index'を使用して、コントローラ 'Settings :: User'にマップすることを想定しています。私の問題は、私のLinuxシステムでは、コントローラ 'Settings'とアクション 'users'にマッピングされているからです。そうではありません。それは、絶対ファイルシステムのパスとしては受け入れられません。 – christianblais

答えて

1

このような特定の方法でルーティングに影響を与える場合、これはOS固有の問題ではありません。コントローラー名の先頭に/が付いている理由はありますか?名前のついたルートは、このような混乱のほとんどを非常に特殊なものにすることを避けているので、残念ながらあなたはそれらなしで残されています。

おそらく2つのシステムの宝石のバージョンに若干の違いがあります。おそらく非常に微妙なものかもしれません。この

map.namespace :settigns do |settings| 
    settings.connect '/:controller/:action/:id 
end 

か何か使っmap.namespaceよう

+0

宝石は大丈夫です(残念ながら...)。接頭辞「/」の有無にかかわらず問題は同じです。とにかくありがとう。 – christianblais

+0

ロングショットでは、 'rake routes'の出力は両方で同じですか?あなたは本当に多くのルーティングをそこに行っていません。 'assert_routing'機能テストを試してみて、動作を検証して検証することもできます。 – tadman

0

トライsomehtingは、それは私が、これは

を支援ルートのその様々なタイプを除いて、モジュールに

map.namespace :admin do |admin| 
    admin.resources :reports, :only => [:new, :create ] 
    admin.connect 'reports/generate/:action/*rest', :controller => 'reports' 
    admin.resources :approval, :controller => 'approval', :only => [ :index, :create ] 
    admin.resource :home, :controller => 'home' 
end 

希望をコントローラーを行う方法です

関連する問題