Entendendo a Estrutura de Pastas do Ruby on Rails + Paradigma MVC
No artigo anterior, criamos juntos nosso primeiro projeto em Ruby on Rails. Instalamos todas as ferramentas necessárias e exibimos o clássico “Hello World” no navegador. Agora, neste novo capítulo, chegou a hora de entender melhor o que foi criado automaticamente por trás dos bastidores.
Ao rodar o comando rails new
, diversas pastas são geradas. Elas podem parecer confusas à primeira vista. No entanto, cada uma tem um papel importante dentro da estrutura do Rails. Por isso, neste artigo, vamos explorar como funciona a estrutura padrão de um projeto Rails e entender o famoso padrão MVC, que guia toda a arquitetura da framework.
Qual o paradigma do Rails?
O Rails segue o padrão MVC, sigla para Model–View–Controller. Trata-se de uma arquitetura que separa as responsabilidades da aplicação em três camadas bem definidas. Com isso, cada parte da aplicação se torna mais coesa, organizada e fácil de manter.
Camada | Função | Local no Rails |
---|---|---|
Model | Representa os dados e regras de negócio | app/models/ |
View | Interface com o usuário (HTML, JSON etc.) | app/views/ |
Controller | Recebe requisições, processa e coordena Model + View | app/controllers/ |
Portanto, o objetivo do padrão MVC é deixar o código mais limpo e bem estruturado, permitindo uma separação clara entre dados, interface e lógica de controle.

CC BY-SA 4.0. Fonte:
Ruby on Rails Guides.
Estrutura de Pastas: o que tem em cada lugar?
Vamos agora entender o papel de cada pasta principal que compõe um projeto Rails:
app/
Essa é a pasta mais importante do projeto. Dentro dela estão:
controllers/
– onde ficam os controladores, responsáveis por processar requisições.models/
– classes que representam as regras de negócio e o acesso aos dados.views/
– arquivos que geram o HTML exibido no navegador.helpers/
– métodos auxiliares que facilitam a exibição de conteúdo nas views.assets/
– arquivos estáticos como CSS, JavaScript e imagens.jobs/
– tarefas em segundo plano usando Active Job.mailers/
– arquivos responsáveis pelo envio de e-mails.components/
– usados para criar componentes reutilizáveis, especialmente no Rails 7.
config/
Nesta pasta estão os arquivos que definem como o aplicativo Rails se comporta. Por exemplo:
routes.rb
– define todas as rotas da aplicação.database.yml
– configura as conexões com o banco de dados.environment/
– contém configurações separadas por ambiente (desenvolvimento, teste e produção).
test/
ou spec/
Essas pastas são voltadas para os testes automatizados. O Rails vem com Minitest por padrão, mas você pode utilizar RSpec, se preferir.
Outras pastas úteis
Além das pastas principais, outras também desempenham funções importantes:
Pasta | Descrição |
---|---|
bin/ |
Scripts executáveis, como o próprio comando rails |
lib/ |
Bibliotecas personalizadas e módulos auxiliares |
public/ |
Arquivos acessíveis diretamente, como imagens e favicon |
vendor/ |
Dependências externas e bibliotecas de terceiros |
tmp/ |
Arquivos temporários gerados durante a execução do app |
Como tudo se conecta?
Para entender melhor como tudo funciona em conjunto, vamos imaginar um exemplo prático. Suponha que o usuário acesse a URL /apod
. Nesse caso:
- A rota configurada em
config/routes.rb
direciona a requisição paraApodController#index
. - O controller, então, chama um serviço ou model para obter os dados.
- Esses dados são repassados para uma view.
- Por fim, a view
app/views/apod/index.html.erb
gera o HTML exibido no navegador.
Exemplo visual da estrutura
Conclusão
A estrutura de pastas do Rails segue uma lógica clara e orientada à produtividade. Embora possa parecer extensa no começo, com o tempo, você perceberá que tudo foi pensado para facilitar o desenvolvimento web com rapidez e organização.
No próximo artigo, vamos aplicar esses conceitos na prática: criaremos um controller funcional, montaremos uma view dinâmica e vamos integrar a API da NASA para mostrar dados reais no nosso projeto.
Ficou com dúvidas ou quer compartilhar sua experiência? Deixe um comentário! Terei o maior prazer em responder e trocar ideias com você. Até o próximo artigo!
[…] No próximo artigo, vamos adicionar autenticação com Devise e integrar dados reais usando a API da NASA. Em resumo, este é só o começo da nossa série — e espero que você siga junto nessa jornada de aprendizado. […]
[…] artigo anterior, conhecemos a estrutura de pastas do Ruby on Rails e entendemos a importância do padrão MVC […]