2012-09-25 6 views
0

온라인 어딘가에있는 것을 본 기억이 있습니다. 그러나 정보를 찾는 데 어려움이 있습니다. Rails 3.1에서는 세션 컨트롤러 시작 부분에 force_ssl 메서드가 있습니다. 프로덕션 환경에서 호출하기를 원합니다. 어떻게해야합니까? 현재 환경이 '생산'의 경우 명확하게레일즈, 프로덕션에서만 호출되는 메서드

는 코드는이

class SessionsController < ApplicationController 
    force_ssl 
end 
+0

이것은 매우 나쁜 생각입니다. 당신은 그렇게하고 싶지 않습니다. 프로덕션 환경에서 동일한 코드를 테스트 환경으로 실행하려고합니다. 그렇지 않으면 테스트 환경을 가질 필요가 없습니다. – EJP

+0

@EJP 일반적으로 동의합니다. 그러나 카피 바라와 셀레늄으로 SSL을 테스트하는 데는 큰 문제가 있습니다. 테스트 모드에서 SSL을 끄면 지금 당장 문제가 해결됩니다. –

답변

0

Rails.env.production? 반환 같은 사실 뭔가를 보인다. 더 일반적으로 Rails.env.somestring?Rails.env == "somestring" 인 경우 true를 반환합니다. 거기에서 당신은 잘되어야합니다.

** 수정 **

잘 실제로, 단지 생산에 SSL을 사용하는 쉬운 방법이 있습니다. 체크 아웃 this article

+0

구문에 대해 좀 더 구체적으로 설명 할 수 있습니까? 나는 시도했다 : Rails.env.production이라면 force_ssl? 그러나 그것은 효과가없는 것처럼 보입니다. –

1

나는 비슷한 문제가있었습니다. force_ssl은 capybara 및 selenium으로 테스트하여 문제를 일으켰습니다. 여기에 내 문제가 해결되어 테스트가 진행 중입니다 :

force_ssl if Rails.env.production? 

일부 컨트롤러에서는 위 라인을 사용하고 있습니다. 예를 들어, SessionController와 UserController에서.

관련 문제