如何在rails服务器启动时自动启动浏览器?

时间:2016-02-13 18:16:07

标签: ruby-on-rails ruby-on-rails-4 puma

有没有办法在您运行rails server时自动启动浏览器并将其指向config/initializers/launchy.rb

其次确保这只发生在开发中?

我原本以为Launchy会做到这一点,但我正努力想要把它放在哪里。

我已尝试添加初始化资源require 'launchy' Launchy.open("http://localhost:3000")

http://localhost:3000

这会触发浏览器打开,创建一个新选项卡并按预期访问Launch.open,但它会在服务器/应用程序完成启动之前运行,并且我得到 无法连接到服务器 在浏览器中出错。

如果我在浏览器中重新加载我的应用程序工作正常,那么我确信它不是我的应用程序的问题,而是launchy.rb调用的时间。

我尝试将z_launchy.rb重命名为config/puma.rb,因此根据docs最后加载,但问题仍然存在。在应用程序准备好之前启动启动。

我还尝试将代码添加到config/enviroments/developoment.rb(我使用puma作为我的服务器),Launchy.open但始终存在同样的问题。 Launchy.open("http://localhost:3000")命令很快就会被调用。

我应该在哪里调用slideshow以确保a)它在应用程序加载并准备接收请求后运行;和b)所以它只在开发中运行,而不是在测试或生产中运行?

系统设置OS X 10.11.3,Rails 4.2.5,ruby 2.2.1p85,puma版本2.15.3

1 个答案:

答案 0 :(得分:4)

config.ru行之后,将其放入run Rails.application会有效。到返回时,您的应用程序已准备就绪。要仅在development中运行,请检查Rails.env

require ::File.expand_path('../config/environment', __FILE__)
run Rails.application
Launchy.open("http://localhost:3000") if Rails.env.development?

这很容易,但让我坐在你的应用程序中感觉很脏。更好的是一个小脚本,启动你的服务器,等待片刻,然后启动浏览器。

相关问题