如何在Rails上禁用“无法渲染控制台…”

我正在使用Ubuntu / vagrant作为我的开发环境。 我在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 

是否有可能禁用那些“无法呈现…”的消息或允许他们以任何方式?

您需要在Web控制台configuration中将10.0.2.2networking空间列入白名单。

所以你会想要这样的东西:

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

在这里阅读更多的信息。

正如pguardiario所指出的那样 ,它想要进入config/environments/development.rb而不是config/application.rb所以它只能在你的开发环境中应用。

您可以将单个IP或整个networking列入白名单。

假设你想与192.168.0.100共享你的控制台。 你可以这样做:

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

如果您想将整个专用networking列入白名单,您可以执行以下操作:

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

如果您不想再看到此消息,请将此选项设置为false:

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

要小心你所希望的,因为你可能会把它全部弄清楚

这可能只是为了开发的目的,所以你可能更喜欢把它放在config/environments/development.rb而不是config/application.rb

将IP硬编码到configuration文件并不好:其他开发者呢? 如果IP变化怎么办?

Docker相关的configuration应该尽可能不泄露到rails应用程序中。

这就是为什么你应该在config/environments/development.rb文件中使用env vars:

# 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

您应该在.env文件中设置正确的env vars,而不是跟踪到版本控制。

docker-compose.yml你可以用env_file从这个文件注入env vars:

app: build: . ports: - "3000:3000" volumes: - .:/app links: - db environment: - DOCKERIZED=true env_file: - ".env"

在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 

当然可能需要添加

 require 'socket' require 'ipaddr' 

在你的文件中。

任何人在我的私人networking是受欢迎的。

我在一个docker集装箱运行,我不在乎这个星期要使用哪个networking。

config / environments / development.rb添加行

 config.web_console.whitelisted_ips = ['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16'] 

如果你想停止看到这个错误信息,你可以在development.rb中添加这一行

 config.web_console.whiny_requests = false