O Guia de comandos do Rails

Os comandos do Rails

Existem muitos comandos do Rails (que são rodados no console) que podem acelerar o desenvolvimento do seu projeto e diminuir o retrabalho, eu fiz uma lista com todos os comandos (e argumentos para esses comandos) que me parecem relevantes na prática e que podem tornar sua vida mais fácil.

Note que eu sempre uso o comando Rails nesse guia ao invés de rake porque eu estou seguindo o padrão do Rails 5, porém se você estiver usando uma versão mais antiga do Rails e tiver problemas na hora de rodar tarefas como rails db:seed, tente usar rake db:seed :).

Índice do Guia
  1. Rodando o Servidor
  2. Rodando o Console
  3. Acessando o Console do Banco de Dados
  4. Rodando códigos Ruby com o Contexto do Rails
  5. Informações rápidas sobre a aplicação
  6. Alguns números sobre a nossa aplicação
  7. Manipulando o banco de dados
  8. Rails Generate
  9. Rails Destroy

 

Rodando o Servidor

Rodar o servidor de desenvolvimento do Rails talvez seja o comando mais básico que exista, mas existem alguns argumentos opcionais que desenvolvedores mais iniciantes não conheçam, então vamos lá:

Subindo o servidor de desenvolvimento do Rails no localhost:3000

Subindo usando outro servidor  no localhost:3000

Argumentos: webrick (ou outro servidor), caso você esteja usando outro servidor que não seja o padrão.

Subindo  o servidor de desenvolvimento do Rails na porta 4000 no localhost

Argumento: -p seguido do numero da porta que você deseja (4000, 8080 etc)

Subindo  o servidor de desenvolvimento utilizando as configurações de production no localhost:3000

Argumento: -e seguido do nome do ambiente que você deseja (production, development, staging e etc)

Subindo  o servidor de desenvolvimento como Daemon (vai rodar independente de você estar com o console aberto) no localhost:3000

Argumento: -d

Sobe o servidor de desenvolvimento do Rails “no IP 127.0.0.5” na porta 3000

Argumento: -b seguido do IP desejado (127.0.0.5 e etc)

 

Rodando o Console

Rodar o console do Rails pode ajudar a depurar nosso sistema, vamos conhecer algumas possibilidades:

Rodando o console

Rodando o console no ambiente de production

Argumentos: production (ou outro ambiente desejado) diz  para o Rails console que você deseja usar as configurações do ambiente escolhido

Rodando o console no Sandbox (Não altera os dados do db ao final do processo)

Argumentos: –sandbox é ideal para você realizar seus testes sem afetar os dados da sua aplicação, ao final da utilização do rails console ele vai dar rollback nas mudanças que você fez no banco de dados.

Acessando o Console do Banco de Dados

Este é um comando pouco conhecido que te permite acessar o console do seu próprio banco de dados. Quando você roda esse comando o rails verifica qual é o seu banco de dados e usa seus dados de acesso (config/database.yml) para te logar no console do seu banco de dados.

Acessando o Banco de dados

Rodando códigos Ruby com o contexto do Rails

O rails runner permite que você rode métodos de models, arquivos da lib e etc diretamente do console e usando o contexto do seu Projeto. Isso pode ser útil em algumas circunstancias, como rodar uma rotina que sincronize sua aplicação com uma base dados externo em caso de falha dos seus workers ou algo assim. (Use com sabedoria)

Rodando um método de um Model

Augumentos: “User.sync” (Ou qualquer outro método de um model) é o alvo do runner que será executado.

Rodando um  arquivo da Lib em Production

Argumentos:

  • “lib/sync_users.rb” (Ou qualquer outro path para um arquivo ruby) é o alvo do runner que será executado.
  • -e (ou outro nome de ambiente) diz qual ambiente usar (production, stagging, development e etc).

Informações rápidas sobre a aplicação

Um dos comandos que eu não conhecia e descobri enquanto fazia a pesquisa para este artigo é o rails about, ele pode ser uma “mão na roda” para quando você entra em um novo projeto e precisa se contextualizar sobre algumas informações básicas como a versão do Rails, Database utilizado, Middleware e etc.

Pegando as informações do App no ambiente de development:

Um exemplo de retorno do comando:

Pegando as informações do App em Production

Obs: Você pode mudar production para qualquer ambiente que deseje.

Alguns números sobre a sua Aplicação

O rails stats devolve alguns números interessantes sobre o seu App como a quantidade de classes de models que você possui, o numero de classes de Controller e também os números de classes de teste que você possui. Isso dá uma visão do tamanho que seu App possui entre outros  insights.

Pegando os números:

Um exemplo de resultado para uma aplicação pequena:

captura-de-tela-de-2016-09-24-15-08-54

 

Manipulando o Banco de Dados

Criar o banco de dados, rodar as migrations e etc são passos comuns no dia a dia do desenvolvimento com o Rails, mas existem alguns argumentos um pouco menos conhecidos.

Criando o banco de dados:

Deletando o banco de dados:

Resetando o banco de dados:

Realiza o drop (apaga os dados) e em seguida o create (volta zerado).

Rodando as migrations (alterando o banco de dados):

Desfazendo a última migration:

Desfazendo as últimas 3 migrations:

Argumentos: STEP, esse argumento permite você voltar quantas migrations desejar.

Refazendo as últimas 3 migrations:

Se você se arrependeu do rollback, você pode refazer as últimas x migrations.

Argumentos: STEP, esse argumento permite você refazer quantas migrations desejar.

Populando o banco de dados:

O seed é um arquivo que fica em “/db/seeds.rb” que você pode rodar para popular seu banco de dados com algumas informações pré definidas. Isso é útil para você configurar rapidamente seu ambiente de desenvolvimento com usuários padrões e etc.

Pegando a versão atual do banco de dados:

Rodando a migrations em production:

Argumentos: production (Ou outro ambiente que deseje)

Rails Generate

O rails generate talvez seja a parte mais importante para acelerar o desenvolvimento do seu App porque com ele você consegue gerar Controllers, Models, Migrations e etc em um único comando, vamos descobrir as possibilidades.

Gerando um Controller User com um método create:

Argumentos:

  • User (ou outro nome que você deseje) é o nome do controller que vai ser gerado.
  • create (ou outro nome que você deseje) é o nome do método que você deseje.

Arquivos gerados:
captura-de-tela-de-2016-09-24-16-12-12

Gerando um Model (e migration) Car com os campos type(string) e description(texto):

Argumentos:

  • Carro (ou outro nome que você deseje) é o nome do model que vai ser gerado.
  • type:string, campo type que vai ser criado no banco de dados do tipo string.
  • description:text campo description que vai ser criado no banco de dados do tipo Texto.

Arquivos gerados:

captura-de-tela-de-2016-09-24-16-20-48

Gerando um Mailer User:

Argumentos:

  • UserMailer (ou outro nome que você deseje) é nome do mailer que vai ser gerado.

Arquivos gerados:

captura-de-tela-de-2016-09-24-16-54-19

Gerando um Scaffold Travel com os campos date(string) e title(string):

O Scaffold gera um CRUD básico para sua aplicação com views, controllers, routes, migrations e etc.
Pode ser uma maneira interessante de criar rapidamente uma estrutura para seu App.

Argumentos:

  • Travel (ou outro nome que você deseje) é o nome que vai ser usado nos arquivos gerados.
  • date:datetime, campo do tipo datetime que vai ser usado nas migrations, views e etc.
  • title:string, campo do tipo string que vai ser usado nas migrations, views e etc.

Arquivos gerados:

captura-de-tela-de-2016-09-24-16-28-00

*OBS: Se você quiser evitar que o Scaffold gere as migrations você pode usar o arqumento –skip-migration

Rails Destroy

O rails destoy te ajuda a remover os arquivos criados através do rails generate, isso é bem útil quando você utiliza um nome incorreto na hora de gerar seus arquivos e etc.

Destruindo o Controller User

Argumentos:

  • User (ou outro nome que você deseje) é o nome do controller que vai ser destruído.

Resultado no console:
captura-de-tela-de-2016-09-24-17-02-33

Destruindo o Model Car

Argumentos:

  • Car (ou outro nome que você deseje) é o nome do model que vai ser destruído.

Resultado no console:

captura-de-tela-de-2016-09-24-17-04-15

Destruindo o Mailer User

Argumentos:

  • UserMailer (ou outro nome que você deseje) é o nome do mailer que vai ser destruído.

Resultado no console:

captura-de-tela-de-2016-09-24-17-07-41

Destruindo o Scaffold Travel

Argumentos:

  • Travel (ou outro nome que você deseje) é o nome do scaffold que vai ser destruído.

Resultado no console:

captura-de-tela-de-2016-09-24-17-05-56

 

Conclusão e mais comandos

Esse guia pode te ajudar a descobrir e se lembrar de alguns comandos na hora de desenvolver uma nova aplicação, principalmente se você está começando no mundo do Rails.
Você pode descobrir mais alguns comandos e alguns argumentos direto na documentação do rails clicando aqui ou rodando no console:

Screencast

Essa semana eu criei o primeiro Screencast do Blog sobre autenticação com devise + omniauth, dá uma olhada no Screencast no Youtube e me dá um feedback se possível (Veja o Screencast cliando aqui).
Em breve teremos muitos outros Screencasts no canal, então se inscreve no canal clicando no botão aí em baixo :).

Com dúvidas ou precisando de ajuda?

Comenta ai em baixo ou me adiciona no facebook (clicando aqui) e eu farei o possível para te ajudar 🙂

Agradecimento

Obrigado novamente pelos feedbacks que tenho recebido sobre o Blog, eles estão sendo muito importante para que eu prossiga com esse projeto.

Um grande abraço,
Leonardo Scorza.

outubro 1, 2017
Feito com s2 por OneBitCode
%d blogueiros gostam disto: