当我运行`rails server`时,如何让'puma'自动启动(就像Thin一样)

时间:2012-11-13 17:48:40

标签: ruby-on-rails puma

通常,当你运行rails server时,它会启动Webrick。如果您安装'thin'宝石,那么'thin'会启动。我想用'puma'服务器做同样的事情。

我看到railties中的start命令(lib / rails / commands)调用super,但我找不到'super'的各种选项。我还在'thin'中回顾了很多对Rails的引用。

我从2008年10月发现了一个名为“为脚本/服务器添加了精简支持。#488 [Bob Klosinski]”的Changelog条目,但该代码区域自提交以来发生了重大变化(a93ea88c0623b4f65af98c0eb55924c335bb3ac1)。

如果有人可以将我引导到正确的代码部分,那将非常有帮助。

4 个答案:

答案 0 :(得分:57)

经过一番挖掘,我找到了这个答案:https://stackoverflow.com/a/14911994/604526

要使Puma成为默认值,请将此代码粘贴到需要'rails / commands'的脚本/轨道中:

require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler.get(:puma)

如果您使用rails s

,Puma现在是默认服务器
rails s
=> Booting Puma
=> Rails 3.2.12 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Connecting to database specified by database.yml
Puma 1.6.3 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:3000

使用Rails 4,您只需将Puma-gem添加到Gemfile即可。 (使用Rails 4.0.2和Puma 2.6.0测试)

答案 1 :(得分:17)

至少在Rails 4中,您只需要将以下内容添加到您的Gemfile

gem 'puma'

然后运行'bundle',然后运行'rails server'并使用Puma。

答案 2 :(得分:9)

这对我有用。 Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3

rails s puma

答案 3 :(得分:2)

Puma documentation建议您将#\ -s puma添加到config.ru