Как мне получить "пуму", чтобы начать, автоматически, когда я запускаю "сервер rails" (например, Thin)
Обычно, когда вы запускаете rails server
, он запускает Webrick. Если вы установите "тонкий" камень, вместо этого вместо него начнется "тонкий". Я хотел бы сделать то же самое с сервером "puma".
Я вижу, что команда start
внутри railties (lib/rails/commands) вызывает супер, но я не могу найти, какие существуют различные опции для "super". Я также рассмотрел множество ссылок на Rails в "тонких".
Я нашел запись Changelog, озаглавленную "Добавлена тонкая поддержка script/server. # 488 [Bob Klosinski]" с октября 2008 года, но эта область кода значительно изменилась с момента фиксации (a93ea88c0623b4f65af98c0eb55924c335bb3ac1).
Если кто-то может направить меня в нужную часть кода, это будет очень полезно.
Ответы
Ответ 1
После некоторых раскопок я нашел ответ: fooobar.com/questions/200894/...
Чтобы сделать Puma по умолчанию, вставьте этот код в скрипт /rails выше, для этого требуется 'rails/commands':
require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler.get(:puma)
Puma теперь является сервером по умолчанию, если вы используете rails s
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
Рельсы 4
С Rails 4 вам просто нужно добавить драгоценный камень в Gemfile. (Протестировано с Rails 4.0.2 и Puma 2.6.0)
Ответ 2
По крайней мере, в Rails 4 вам просто нужно добавить следующее в свой Gemfile
gem 'puma'
затем запустите 'bundle', а затем, когда вы запустите сервер rails, и будет использоваться Puma.
Ответ 3
Это работает для меня. Ruby 2.0.0 Rails 3.2.13 Puma 1.6.3
rails s puma
Ответ 4
Документация Puma предлагает вам добавить #\ -s puma
к вашему config.ru
.