
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. Preparamos uma lista com todos os comandos (e argumentos para esses comandos) que consideramos relevantes, na prática, e que podem tornar sua vida mais fácil.
Note que nós sempre usamos o comando Rails nesse guia ao invés de rake, porque estamos 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
- Rodando o Servidor
- Rodando o Console
- Acessando o Console do Banco de Dados
- Rodando códigos Ruby com o Contexto do Rails
- Informações rápidas sobre a aplicação
- Alguns números sobre a nossa aplicação
- Manipulando o banco de dados
- Rails Generate
- dating with woman in california usa
Rodando o Servidor
1 |
rails s [SERVER] [OPTIONS] |
Rodar o servidor de desenvolvimento do Rails talvez seja o comando mais básico que exista, mas existem alguns argumentos opcionais que desenvolvedores iniciantes não conheçam. Portanto vamos lá:
Subindo o servidor de desenvolvimento do Rails no localhost:3000
1 |
rails s |
Subindo usando outro servidor no localhost:3000
1 |
rails s webrick |
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)
1 |
rails s -p 4000 |
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)
1 |
rails s -e production |
Subindo o servidor de desenvolvimento como Daemon (vai rodar independente de você estar com o console aberto) no localhost:3000
Argumento: -d
1 |
rails s -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)
1 |
rails s -b 127.0.0.5 |
Rodando o Console
1 |
rails c [ENVIRONMENT] [OPTIONS] |
Rodar o console do Rails pode ajudar a depurar nosso sistema, vamos conhecer algumas possibilidades:
Rodando o console
1 |
rails c |
Rodando o console no ambiente de production
1 |
rails c 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)
1 |
rails c --sandbox |
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 dará rollback nas mudanças que você fez no banco de dados.
Acessando o Console do Banco de Dados
1 |
rails db |
Este é um comando pouco conhecido que lhe 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
1 |
rails db |
Rodando códigos Ruby com o contexto do Rails
1 |
rails r [OPTIONS] [ALVO] |
O rails runner permite que você rode métodos de models, arquivos da lib etc, diretamente do console e usando o contexto do seu Projeto. Isso pode ser útil em algumas circunstâncias, como rodar uma rotina que sincronize sua aplicação com uma base de dados externa em caso de falha dos seus workers ou algo assim. (Use com sabedoria)
Rodando um método de um Model
1 |
rails r "User.sync" |
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
1 |
rails runner -e production lib/sync_users.rb |
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 etc).
Informações rápidas sobre a aplicação
1 |
rails about |
Um dos comandos que descobrimos enquanto fazíamos a pesquisa para este artigo é o rails about, ele pode ser uma “mão na roda” 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 etc.
Pegando as informações do App no ambiente de development:
1 |
rails about |
Um exemplo de retorno do comando:
1 2 3 4 5 6 7 8 9 10 11 |
About your application's environment Rails version 5.0.0.1 Ruby version 2.3.1-p112 (x86_64-linux) RubyGems version 2.5.1 Rack version 2.0.1 JavaScript Runtime Node.js (V8) Middleware Rack::Sendfile, ActionDispatch::Static, ActionDispatch::Executor, ActiveSupport::Cache::Strategy::LocalCache::Middleware, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, Sprockets::Rails::QuietAssets, Rails::Rack::Logger, ActionDispatch::ShowExceptions, WebConsole::Middleware, ActionDispatch::DebugExceptions, ActionDispatch::RemoteIp, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, Rack::Head, Rack::ConditionalGet, Rack::ETag, Warden::Manager, OmniAuth::Strategies::Facebook Application root /home/leo/Documentos/projetos/social Environment development Database adapter sqlite3 Database schema version 20160921005217 |
Pegando as informações do App em Production
1 |
RAILS_ENV=production rails about |
Obs: Você pode mudar production para qualquer ambiente que deseje.
Alguns números sobre a sua Aplicação
1 |
rails stats |
O rails stats devolve alguns números interessantes sobre o seu App, como a quantidade de classes de models que você possui, o número 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:
1 |
rails status |
Um exemplo de resultado para uma aplicação pequena:
online free dating chat rooms no account needed los angeles
Manipulando o Banco de Dados
1 |
rails db:[OPTIONS] |
Criar o banco de dados, rodar as migrations 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:
1 |
rails db:create |
Deletando o banco de dados:
1 |
rails db:drop |
Resetando o banco de dados:
1 |
rails db:reset |
Realiza o drop (apaga os dados) e em seguida o create (volta zerado).
Rodando as migrations (alterando o banco de dados):
1 |
rails db:migrate |
Desfazendo a última migration:
1 |
rails db:rollback |
Desfazendo as últimas 3 migrations:
1 |
rails db:rollback STEP=3 |
Argumentos: STEP, esse argumento lhe permite voltar quantas migrations desejar.
Refazendo as últimas 3 migrations:
1 |
rails db:migrate:redo STEP=3 |
Se você se arrependeu do rollback, você pode refazer as últimas x migrations.
Argumentos: STEP, esse argumento lhe permite refazer quantas migrations desejar.
Populando o banco de dados:
1 |
rails db:seed |
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 etc.
Pegando a versão atual do banco de dados:
1 |
rails db:version |
Rodando a migrations em production:
1 |
rails db:migrate RAILS_ENV=production |
Argumentos: production (Ou outro ambiente que deseje)
Rails Generate
1 |
rails generate [OPTIONS] [ARGUMENTS] |
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 etc em um único comando. Vamos descobrir as possibilidades:
Gerando um Controller User com um método create:
1 |
rails generate controller User 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ê deseja.
Gerando um Model (e migration) Car com os campos type(string) e description(texto):
1 |
rails generate model Car type:string description:text |
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:
Gerando um Mailer User:
1 |
rails generate mailer UserMailer |
Argumentos:
- UserMailer (ou outro nome que você deseje) é nome do mailer que será gerado.
Arquivos gerados:
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 etc.
Pode ser uma maneira interessante de criar rapidamente uma estrutura para seu App.
1 |
rails generate scaffold Travel date:datetime title:string |
Argumentos:
- Travel (ou outro nome que você deseje) é o nome que será usado nos arquivos gerados.
- date:datetime, campo do tipo datetime que será usado nas migrations, views etc.
- title:string, campo do tipo string que será usado nas migrations, views etc.
Arquivos gerados:
*OBS: Caso queira evitar que o Scaffold gere as migrations, você poderá usar o arqumento –skip-migration
Rails Destroy
1 |
rails destroy [OPTIONS] [ARGUMENTS] |
O rails destroy o 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 etc.
Destruindo o Controller User
1 |
rails destroy controller User |
Argumentos:
- User (ou outro nome que você deseje) é o nome do controller que será destruído.
Destruindo o Model Car
1 |
rails destroy model Car |
Argumentos:
- Car (ou outro nome que você deseje) é o nome do model que será destruído.
Resultado no console:
Destruindo o Mailer User
1 |
rails destroy mailer UserMailer |
Argumentos:
- UserMailer (ou outro nome que você deseje) é o nome do mailer que será destruído.
Resultado no console:
Destruindo o Scaffold Travel
1 |
rails destroy scaffold Travel |
Argumentos:
- Travel (ou outro nome que você deseje) é o nome do scaffold que será destruído.
Resultado no console:

Não perca nenhum conteúdo
Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/
Conclusão e mais comandos
Esse guia poderá ajudá-lo 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:
1 |
rails generate |
Screencast
Essa semana criamos o primeiro Screencast do Blog sobre autenticação com devise + omniauth, dê uma olhada no Screencast no Youtube e nos dê um feedback se possível (Veja o Screencast cliando aqui).
Em breve teremos muitos outros Screencasts no canal, então inscreva-se clicando aqui :).
Com dúvidas ou precisando de ajuda?
Comente aí em baixo ou curta nossa página no facebook clicando aqui e mande suas dúvidas que faremos o possível para ajudá-lo 🙂
Agradecimento
Obrigado novamente pelos feedbacks que temos recebido sobre o Blog, eles estão sendo muito importantes para a continuidade desse projeto.
Um grande abraço,
Equipe OneBitCode.
Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!
O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!
Fique por dentro de todos os conteúdos o/
Nossas redes sociais:
📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
📱 • https://instagram.com/one_bit_code
🐦 • https://twitter.com/onebitcode
Nossos cursos:
🥇 • Programador Full Stack Javascript em 8 Semanas
💎 • Curso Completo de Ruby
⚙ • Minicurso: API Rails 5 Completo
🐞 • Minicurso de Testes para Ruby on Rails com RSpec
Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
Estamos aqui para você 🙂
Bem-vindo à família OneBitCode o/