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