2012-01-11 2 views
2

레일즈 3을 사용하고 있으며 개발 중에는 WEBrick을 사용하여 WEBrick을 실행할 필요가 있습니다. 이를 위해,이 가이드를 따라했습니다이 잘 작동레일즈 개발 환경에서만 실행되는 스크립트/레일즈에 루비 코드 추가하기

http://www.nearinfinity.com/blogs/chris_rohr/configuring_webrick_to_use_ssl.html

그러나 내가 생산 모드에서 실행할 때 이러한 설정이 더 내 레일 응용 프로그램에 영향을 미치지 않도록하지 싶습니다. 우리는 현재 Apache/Passenger를 사용하고 있으며, 프로젝트는 계속 잘 돌아 간다. 그러나이 코드가 실행되지 않았는지 확인하기위한 명확한 방법이 있습니까? 가능한 대답은 코드 주위의 if/end 블록 일 수도 있고 아니면 개발 전용 코드를 별도의 파일이나 유사한 것으로 배치 할 수있는 빌트인 레일 시설 일 수도 있습니다.

+0

'Rails' 객체는 해당 실행 시점에서 사용할 수 없습니다. –

+0

죄송합니다. 프리 레일임을 알지 못했습니다. –

답변

1

ENV [ 'RAILS_ENV']와 (과) 비슷한 모습의 친구입니다. ENV 해쉬는 당신이 실행중인 유닉스 환경을 보여 주며 Rails는 RAILS_ENV를보고 어떤 모드로 실행할 것인지를 결정합니다. 당신이 뭔가를 할 수 있습니다 :

if ENV['RAILS_ENV'].to_s == 'development' || ENV['RAILS_ENV'].to_s == '' 
    # do your thing here 
end 

당신은 또한 당신이 그 환경에 WEBrick 실행되도록 할 수 있습니다 :

#> RAILS_ENV=development /path/to/webrick/script 

그것이 도움이되기를 바랍니다.

+0

이 대답은 이전 버전의 레일즈에는 맞지만 레일즈 3에는 맞지 않을 것이라고 생각합니다. 'RAILS_ENV'는 더 이상 사용되지 않기 때문에 (레일즈는 이제'rails server [environment]'를 통해 시작됩니다.) 나는 지금까지 작동 해 왔던 ARGV [1] .nil?을 다음과 같이 사용했지만 항상 활성 환경으로 설정된 단일 변수를 잡을 수있는 것을 선호합니다. 로드 프로세스 초기에이 기능을 사용할 수 없을 수도 있습니다. –

+0

거기에 사용하는 코드는 ENV 변수를 사용하므로 제대로 작동하는 데 달려 있습니다. 솔직히 Webrick은 거의 해결책이 아닙니다. – aemadrid