2011-09-15 3 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

그냥 레일을 조심하십시오 : 뷰에서 경로가 알려지지 않은 페이지로 링크하면 불평 할 것입니다 (기본적으로 루트 페이지에는'link_to '가 포함되어서는 안됩니다.) @christianblais 응답이 이런 이유로 더 좋습니다. 적어도 조건을 추가 할 수 있습니다 당신의 routes.rb 파일 – apneadiving

+0

팁 주셔서 감사합니다, 나는 @christianblais도 고려해 볼께요! 그리고 신속한 응답 덕분에, 나는 어떻게 그렇게 때로는 싫어하는 기분이 들지 놀랍습니다. – denica

관련 문제