[ruby-on-rails] 레일이 생산 중인지 어떻게 알 수 있습니까?

내가 사용하는 script/server -e production생산 모드에 레일을 시작합니다. 그것은했고 나는 오류가 없었습니다. 그러나 프로덕션 모드인지 어떻게 알 수 있습니까? 존재하지 않는 경로를 시도했는데 개발 중에했던 비슷한 오류 페이지가 나타납니다.

프로덕션 모델에서 내 / public 폴더에 404 오류 페이지가 표시되는 것으로 생각했습니다.

프로덕션 모드에서 시작되지 않았 음을 의미합니까?

당신의 도움을 주셔서 감사합니다.



답변

2 가지 쉬운 방법 :

tail -f log/production.log

앱을 실행 한 후 해당 로그를 채우는 항목이 있으면 프로덕션 모드에있는 것입니다.

두 번째 방법 :

보기 중 하나에서 (아마도 레이아웃이 좋을 것입니다)

<%= "Environment: #{RAILS_ENV}" %>

그리고 그것은 당신이 실행하고있는 환경을 보여줄 것입니다.

편집하다

요청이 “로컬”(즉, localhost 또는 127.0.0.1에서)로 간주되는 경우 모든 환경에서 실제 오류 페이지 대신 기본 예외 페이지가 표시됩니다. ApplicationController

def local_request?
  false
end

이 방법은 api 의 문서에서 찾을 수 있습니다.


답변

Rails 3.1 이상인 경우 프로덕션 단계에서 Rails.env.production?반환 true됩니다.

Rails.env.production?  #=> true
Rails.env.staging?     #=> false
Rails.env.development? #=> false


답변

최신 Rails 버전 (3+)의 Rails.env경우 환경을 다음으로 반환합니다 String.

Rails.env #=> "production"

다음을 반환하는 각 환경에 대한 유용한 접근 자도 있습니다 Boolean.

Rails.env.production?  #=> true
Rails.env.staging?     #=> false
Rails.env.development? #=> false


답변

명령 줄 유형에서 rails console다음 Rails.env.


답변

Rails 서버를 다시 시작하고 명령 줄에서 두 번째 줄을 읽는 것이 훨씬 쉽다는 것을 알았습니다.

rails s -e production출력 실행 :

=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000

예에서 Webrick이 있었지만 일부 사람들은 서버 변경이 이름을 대체하는 방법을 이해하지 못했습니다. 명확성을 위해 업데이트되었습니다.


답변

명령 줄 대안

$ echo $ RAILS_ENV


답변