2012-05-04 44 views
0

與命名空間/管理功能的Rails應用程序,請考慮以下路線:單Rails的代碼庫,兩臺服務器,兩個路由範圍

namespace :admin do 
    root :to => 'home#index' 
    [.. resources cut here..] 
end 

get 'etc/:etc' => 'etc#etc' 
[.. other top level routes cut..] 

如果我想部署相同的Rails代碼庫2個獨立的服務器,前端.com仍然會看到頂級路線'etc /:etc'。

但如果我想同樣的代碼庫部署到只有管理服務器,使得要求,簡直是http://backend.com和具有命名空間:管理員接管頂層,而不必鍵入或使用http://backend.com/admin

在使用.htaccess重寫進行嘗試時,我遇到了admin命名空間代碼中的URL生成問題,以及資源不再被正確加載。

這是不值得追求的東西嗎?

回答

1

當然,您可以在根語句附近有一個條件。

namespace :admin do 
    root :to => 'admin#index' 
    ... 
end 
if SOMETHING 
    root :to => "admin#index" 
end 

(I在此實例中所使用的AdminController代替的HomeController。)

該用戶可以鍵入http://backend.com/,但在某些時候/管理員可能出現在瀏覽器的地址欄上。

SOMETHING可能是主機名或ENV的測試。您可以在虛擬主機配置中設置ENV。

+0

你碰巧知道如何從頂層轉發到管理命名空間?如果SOMETHING; root:to =>'admin :: admin#index'或類似的東西? – daed

+0

我的猜測是「admin/admin#index」。 –

+0

實際上,它顯示爲root:to =>'admin :: Home#index'(用於管理命名空間,家庭控制器)的作品!謝謝你的幫助。我相信現在已經解決了這個問題。 – daed