2012-11-13 10 views
26

Zwykle po uruchomieniu rails server uruchamia się Webrick. Jeśli zainstalujesz "cienki" klejnot, zamiast tego zaczyna się "cienki". Chciałbym zrobić to samo z serwerem "puma".Jak automatycznie uruchomić "puma", gdy uruchamiam `serwer rails` (tak jak Thin does)

Widzę, że polecenie start w obrębie linii (lib/rails/commands) wywołuje super, ale nie mogę znaleźć różnych opcji dla "super". Przejrzałem także wiele odniesień do Railsów w "cienkich".

Znalazłem wpis Changelog zatytułowany "Dodano cienkie wsparcie dla skryptu/serwera. # 488 [Bob Klosinski]" od października 2008, ale ten obszar kodu znacznie się zmienił od czasu zatwierdzenia (a93ea88c0623b4f65af98c0eb55924c335bb3ac1).

Jeśli ktoś mógłby skierować mnie do odpowiedniej sekcji kodu, byłoby to bardzo pomocne.

Odpowiedz

52

Po pewnym kopania, znalazłem tej odpowiedzi: https://stackoverflow.com/a/14911994/604526

Aby uczynić Puma domyślny, wklej ten kod do skryptu/szyny powyżej wymagają 'szyny/poleceń':

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

Puma domyślny serwer teraz, jeśli używasz 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 

z szynami 4 po prostu trzeba dodać Puma gem do Gemfile. (Testowane przy pomocy Rails 4.0.2 i Puma 2.6.0)

+2

To powinna być zaakceptowana odpowiedź –

+0

To mi nie pasowało. Ale myślę, że to dlatego, że moja aplikacja używa cienkiego. – betomoretti

+0

Jak wykonać odwrotną stronę? Nie chcę, aby puma była domyślnie ładowana podczas programowania. – abhishek77in

2

Puma documentation sugeruje, że dodajesz #\ -s puma do swojego config.ru.

+0

Dzięki. Spróbował tego. Brak szczęścia. Nadal dostaję "Booting WEBrick" lub "Booting Thin". Zastanawiam się, czy to jest błąd Railsów? –

+0

@MattScilipoti To musi być coś z Rack. Ale nie sądzę, że to błąd, a raczej brakuje niektórych ustawień. – RocketR

+0

Dzięki za 'config.ru' :) – Sairam

9

To działa dla mnie. Ruby 2.0.0 Szyny 3.2.13 Puma 1.6.3

rails s puma 
+0

To mnie boli, ponieważ ARGV [0] nie jest pusty. reload_libs ładuje lib/tasks/* i miałem założenie, że jeśli ustawiono ARGV [0], chciałbym wykonać to jako polecenie. – pedz

16

Przynajmniej w Rails 4, wystarczy dodać następujące swojej Gemfile

gem 'puma' 

następnie uruchomić 'pakiet', a następnie kiedy uruchomisz "serwer szyn" i użyjesz Puma.

+1

To działa. Teraz gdybym tylko mógł dowiedzieć się, jak automatycznie załadować config/puma.rb podczas uruchamiania 'rails server' ... – odigity

+1

Zgodnie z tym nie możesz: https://github.com/puma/puma/issues/512 – odigity

+2

echo 'alias start_puma = "pakiet exec puma -p 3000-S ~/puma -C config/puma.rb"' ~ ~/.bash_profile && source ~/.bash_profile WTEDY UŻYCIE start_puma – blnc

Powiązane problemy