当你运行rails server
时,自动启动你的浏览器并将其指向http://localhost:3000
的方法有吗?
第二个问题是确保这仅在开发环境中发生。
我原本以为Launchy可以解决这个问题,但我不知道该把它放在哪里。
我尝试添加一个初始化文件config/initializers/launchy.rb
require 'launchy'
Launchy.open("http://localhost:3000")
这将触发浏览器打开、创建一个新标签并访问http://localhost:3000
,但是它在服务器/应用程序启动前运行,因此我在浏览器中得到了一个无法连接到服务器的错误。
如果我重新加载浏览器,我的应用程序就可以正常工作,因此我相信这不是我的应用程序的问题,而是Launch.open
调用的时间问题。
我尝试将launchy.rb
重命名为z_launchy.rb
,使其根据文档最后加载,但仍然存在相同的问题。Launchy会在应用程序准备好之前触发。
我还尝试将代码添加到config/puma.rb
(我使用puma作为服务器),添加到config/enviroments/developoment.rb
,但始终存在相同的问题。 Launchy.open
命令调用的太早了。
我应该在哪里调用Launchy.open("http://localhost:3000")
以确保a)它在应用程序加载并准备好接收请求后运行; b)所以它只在开发中运行,而不是在测试或生产环境中运行?
系统设置:OS X 10.11.3,Rails 4.2.5,ruby 2.2.1p85,puma版本2.15.3