Estrutura de Pastas do Rails + Paradigma MVC

Imagem destacando a estrutura de pastas do Ruby on Rails e o padrão MVC

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.

Esta imagem representa o padrão arquitetônico Model-View-Controller (MVC) utilizado pelo framework Ruby on Rails. O diagrama mostra como o Controller recebe requisições do usuário, interage com o Model, que por sua vez acessa o banco de dados, e envia dados formatados para a View, que responde ao usuário. Imagem licenciada sob CC BY-SA 4.0 conforme disponibilizada em guides.rubyonrails.org.
Imagem original da documentação oficial do Ruby on Rails mostrando a arquitetura MVC. Licenciada sob
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:

  1. A rota configurada em config/routes.rb direciona a requisição para ApodController#index.
  2. O controller, então, chama um serviço ou model para obter os dados.
  3. Esses dados são repassados para uma view.
  4. Por fim, a view app/views/apod/index.html.erb gera o HTML exibido no navegador.

Exemplo visual da estrutura


Estrutura de pastas Rails

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!

2 comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *