yml rails generate application ruby-on-rails development-environment production-environment

ruby on rails - rails - ¿Cómo saber si los rieles están en producción?



rails generate model (6)

Usé script/server -e production para iniciar los rails en el modo de producción. Lo hizo y no tengo errores. Sin embargo, ¿cómo puedo saber si está en modo de producción? Intenté una ruta inexistente, y obtuve una página de error similar que hice en desarrollo.

Pensé que si en el modelo de producción, obtengo la página de error 404 que está en mi / carpeta pública.

¿Significa que no comenzó en modo de producción?

Gracias por tu ayuda.


2 maneras sencillas:

tail -f log/production.log

si hay entradas que rellenan ese registro después de que presionas la aplicación, estás en modo de producción.

segunda forma:

en uno de tus puntos de vista (probablemente el diseño es bueno), simplemente agrega

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

Y eso te mostrará en qué entorno estás trabajando.

editar

Verá la página de excepción predeterminada en lugar de las páginas de error reales en cualquier entorno si la solicitud se considera "local" (es decir, de localhost o 127.0.0.1), puede anular esto al agregar esto a su ApplicationController

def local_request? false end

Puede encontrar este método en los documentos de la api


En su línea de comandos escriba la rails console , luego Rails.env .


Me pareció mucho más fácil reiniciar el servidor de rieles y leer la segunda línea en la línea de comandos:

Ejecución de rails s -e production producción:

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

Tenía Webrick en el ejemplo, pero algunas personas no entendían cómo los servidores cambiantes simplemente sustituían el nombre. Actualizado para mayor claridad


Para las versiones modernas de Rails (3+), Rails.env devuelve el entorno como una String :

Rails.env #=> "production"

También hay accesadores útiles para cada entorno que devolverán un valor Boolean :

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


Si es Rails 3.1+, Rails.env.production? volverá true cuando esté en producción.

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


línea de comando alternativa

$ echo $ RAILS_ENV