Cómo deshabilitar "No se puede renderizar la consola desde Rails" en Rails


Estoy usando Ubuntu/vagrant como mi entorno de desarrollo. Estoy recibiendo estos mensajes en la consola de rails:

Started GET "/assets/home-fcec5b5a277ac7c20cc9f45a209a3bcd.js?body=1" for 10.0.2.2 at 2015-04-02 15:48:31 +0000
Cannot render console from 10.0.2.2! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255

¿Es posible deshabilitar aquellos "no se puede renderizar..."mensajes o permitirlos de alguna manera?

Author: arogachev, 2015-04-02

7 answers

Debe incluir en la lista blanca el espacio de red 10.0.2.2 en la configuración de Web Console.

Así que querrás algo como esto:

class Application < Rails::Application
  config.web_console.whitelisted_ips = '10.0.2.2'
end

Lea aquí para más información.

Como señaló por pguardiario, esto quiere ir a config/environments/development.rb en lugar de config/application.rb por lo que solo se aplica en su entorno de desarrollo.

 133
Author: ydaetskcoR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:58

Puede incluir una sola IP o redes enteras en la lista blanca.

Digamos que quieres compartir tu consola con 192.168.0.100. Puedes hacer esto:

class Application < Rails::Application
  config.web_console.whitelisted_ips = '192.168.0.100'
end

Si desea incluir toda la red privada en la lista blanca, puede hacer lo siguiente:

class Application < Rails::Application
  config.web_console.whitelisted_ips = '192.168.0.0/16'
end

Si ya no quieres ver este mensaje, establece esta opción en false:

class Application < Rails::Application
  config.web_console.whiny_requests = false
end

Ten cuidado con lo que deseas, porque es posible que lo consigas todo

Esto es probablemente solo para fines de desarrollo, por lo que podría preferir colocarlo bajo config/environments/development.rb en lugar de config/application.rb.

 69
Author: Flavio Wuensche,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-07 16:09:08

Codificar una IP en un archivo de configuración no es bueno. ¿Qué hay de otros desarrolladores? ¿Qué pasa si la ip cambia?

La configuración relacionada con Docker no debe filtrarse en la aplicación rails siempre que sea posible. Es por eso que debe usar env vars en el archivo config/environments/development.rb:

class Application < Rails::Application
  # Check if we use Docker to allow docker ip through web-console
  if ENV['DOCKERIZED'] == 'true'
    config.web_console.whitelisted_ips = ENV['DOCKER_HOST_IP']
  end
end

Debe establecer vars env correctos en un archivo .env, no rastreado en el control de versiones.

En docker-compose.yml puede inyectar env vars desde este archivo con env_file:

app:
  build: .
  ports:
   - "3000:3000"
  volumes:
    - .:/app
  links:
    - db
  environment:
    - DOCKERIZED=true
  env_file:
    - ".env"
 23
Author: Pak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-28 14:22:35

Descubrimiento automático dentro de su config/development.rb

config.web_console.whitelisted_ips = Socket.ip_address_list.reduce([]) do |res, addrinfo|
    addrinfo.ipv4? ? res << IPAddr.new(addrinfo.ip_address).mask(24) : res
end

Por supuesto, podría necesitar agregar

require 'socket'
require 'ipaddr'

Dentro de su archivo.

 14
Author: user2481743,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-28 14:25:40

Cualquier persona en cualquiera de mis redes privadas es bienvenida.

Corro en un contenedor docker y no me importa qué red quiere usar esta semana.

Config/environments/development.rb añadir línea

config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']
 6
Author: kwerle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-07 21:22:42

Para el entorno de desarrollo: Detecte si es docker, luego determine la dirección IP y la incluya en la lista blanca

# config/environments/development.rb
require 'socket'
require 'ipaddr'

Rails.application.configure do
  ...

  # When inside a docker container
  if File.file?('/.dockerenv')
    # Whitelist docker ip for web console
    # Cannot render console from 172.27.0.1! Allowed networks: 127.0.0.1
    Socket.ip_address_list.each do |addrinfo|
      next unless addrinfo.ipv4?
      next if addrinfo.ip_address == "127.0.0.1" # Already whitelisted

      ip = IPAddr.new(addrinfo.ip_address).mask(24)

      Logger.new(STDOUT).info "Adding #{ip.inspect} to config.web_console.whitelisted_ips"

      config.web_console.whitelisted_ips << ip
    end
  end
end

Para mí esto imprime lo siguiente y la advertencia desaparece

Adding 172.27.0.0 to config.web_console.whitelisted_ips
Adding 172.18.0.0 to config.web_console.whitelisted_ips

Mi solución fue combinar

 1
Author: Scymex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-20 14:42:16

Si desea dejar de ver este mensaje de error, puede agregar esta línea en desarrollo.rb

config.web_console.whiny_requests = false
 0
Author: Sai Ram Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-19 12:56:05