2011-09-15 51 views
0

如何以編程方式將所有請求重新路由到Rails應用程序生產中的登錄頁面,同時保留對開發中的其他匿名訪問頁面的訪問權限。在Rails應用程序中重定向到生產中的登錄頁面

例如,如果我有一個www.mywebsite.com/listings的請求我想在開發中顯示它們,但將它重定向到生產中的登錄頁面,主要目的是讓我的應用程序保持隱身模式,直到發佈。

有沒有一個最好的方法來做到這一點,因爲我認爲這是一個非常普遍的問題?

回答

2

在應用程序控制器...

before_filter :stealth_mode 

def stealth_mode 
    redirect_to login_url if Rails.env.production? 
end 

而在你的登錄控制器

skip_before_filter :stealth_mode 

在這裏,你去! :-)

+0

不錯的一個也+1, ) – apneadiving

1

在您的路線:

if Rails.env.production? 
    match '(:controller(/:action(/:id(.:format))))' => "root_controller#root_action" 
else 
    #your routes declarations 
end 

root :to => "root_controller#root_action" 
+0

這可以幫助我很多!如果我開始爲不同的環境開始混合邏輯,我覺得如果路由文件看起來有點髒,但我認爲它應該沒問題。非常感謝! – denica

+1

只是提防rails:如果你鏈接到視圖中路徑未知的頁面(基本上你的根頁面不應該包含任何'link_to'。@christianblais的回答更好,至少可以添加條件在你的routes.rb文件 – apneadiving

+0

感謝您的提示,我會考慮@christianblais呢!感謝您的快速反應,我非常驚訝於SO有時感覺像在聊天... – denica