Iniciando o servidor Rails
Uma app gerada não faz nada até algo rodá-la
Rails CLI: rails new gerou uma app inteira: models, views, controllers e configuração, parados no disco. Nada disso faz coisa alguma ainda. Uma app Rails é só arquivos até um processo começar a ler requisições e rodar o código. Esse processo é o bin/rails server.
bin/rails server
Rodá-lo neste projeto imprime algo assim:
=> Booting Puma
=> Rails 8.1.4 application starting in development
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Listening on http://127.0.0.1:3000
Três coisas aconteceram. O Rails subiu, carregando config/application.rb, os initializers e o resto. O Puma começou como o servidor web por baixo. E passou a escutar na porta 3000, a padrão. Abrir http://localhost:3000 num navegador agora chega a esse processo.
O Puma já foi mencionado, este curso vai mais fundo
A web: requisição-resposta citou o Puma como a primeira camada por onde uma requisição passa, a peça que recebe HTTP bruto e o entrega ao Rack. Aquele curso seguiu a jornada inteira da requisição. Este trata do Puma: como subi-lo, configurá-lo e o que "workers" e "threads" querem dizer na saída e na configuração dele.
Parando ele
Ctrl+C no terminal que roda o bin/rails server para o Puma e devolve você ao shell. Não há comando de parada separado; o servidor só roda enquanto aquele terminal o mantém em primeiro plano.
Pontos-chave
- Uma app gerada fica parada até o
bin/rails serversubir o Puma, o processo que escuta requisições HTTP. - A saída de subida mostra que o Rails carregou, o Puma começou e está escutando, na porta 3000 por padrão.
- A web: requisição-resposta cobriu a jornada inteira; este curso trata do próprio Puma.
Ctrl+Cpara o servidor, que só roda enquanto o processo do terminal vive.
Continue com a aula 2
O que é o Puma, e por que não WEBrick?
Por que o WEBrick saiu das gems padrão do Ruby, a origem do Puma e sua adoção no Rails.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.