0Pricing
Ruby Academy · Aula

Controladores e ações

Lide com requisições.

Controladores e ações é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.

O que é um controlador?

Um controlador recebe uma solicitação do roteador, executa o trabalho necessário e decide o que devolver. Ele coordena os modelos e as visualizações.

  • Os controladores ficam em app/controllers.
  • Eles herdam de ApplicationController.
  • Cada método público é uma ação.

Definindo um controlador

Um controlador é uma classe cujo nome termina em Controller. Por convenção, ArticlesController processa as rotas do recurso articles.

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end
end

As ações correspondem às rotas

Cada uma das sete rotas REST chama uma ação correspondente. O roteador envia GET /articles para index, GET /articles/1 para show e assim por diante. Nomear as ações de acordo com a convenção mantém tudo conectado automaticamente.

O mapa params

Os dados da solicitação chegam em params, um objeto semelhante a um mapa que contém segmentos da rota, parâmetros de consulta e campos do formulário. Para /articles/5, params[:id] é "5".

def show
  @article = Article.find(params[:id])
end

Variáveis de instância nas visualizações

Os controladores passam dados às visualizações por meio de variáveis de instância (o prefixo @). Qualquer @variable definida na ação fica visível no modelo de visualização correspondente.

def index
  @articles = Article.all
  # @articles is available in index.html.erb
end

Implementando index e show

As ações de leitura são simples: index carrega uma coleção, e show carrega um registro pelo identificador. Em seguida, elas renderizam seus modelos padrão.

class ArticlesController < ApplicationController
  def index
    @articles = Article.all
  end

  def show
    @article = Article.find(params[:id])
  end
end

Implementando create

A ação create constrói um registro a partir dos dados enviados e o salva. Em caso de sucesso, redireciona; em caso de falha, renderiza novamente o formulário para que o usuário possa corrigir os erros.

def create
  @article = Article.new(article_params)
  if @article.save
    redirect_to @article
  else
    render :new, status: :unprocessable_entity
  end
end

Redirecionar versus renderizar

São duas respostas muito diferentes:

  • redirect_to informa ao navegador que ele deve fazer uma nova solicitação para outra URL.
  • render retorna uma visualização diretamente para a solicitação atual.

Redirecione depois de uma gravação bem-sucedida; renderize para exibir novamente um formulário com erros.

Ações anteriores

Uma before_action executa uma configuração compartilhada antes das ações escolhidas, reduzindo a duplicação. Um uso comum é carregar o registro necessário para show, edit, update e destroy.

class ArticlesController < ApplicationController
  before_action :set_article, only: [:show, :edit, :update, :destroy]

  private

  def set_article
    @article = Article.find(params[:id])
  end
end

Filtros e autenticação

before_action também aplica regras. Uma proteção como before_action :require_login pode executar redirect_to login_path e interromper a ação se o usuário não estiver autenticado, protegendo controladores inteiros de uma só vez.

before_action :require_login

private

def require_login
  redirect_to login_path unless current_user
end

Lidando com registros ausentes

Quando find não consegue localizar um registro, ele gera RecordNotFound, que o Rails transforma em um erro 404 em produção. Você pode personalizar esse comportamento com rescue_from para exibir uma página amigável.

rescue_from ActiveRecord::RecordNotFound do
  redirect_to articles_path, alert: "Not found"
end

Verificação rápida

Teste sua compreensão sobre controladores.

Recapitulação: controladores e ações

Você aprendeu como os controladores processam solicitações:

  • As ações correspondem às rotas por convenção.
  • params transporta os dados da solicitação; @variables chegam à visualização.
  • create salva e depois redireciona ou renderiza novamente.
  • redirect_to e render têm finalidades diferentes.
  • before_action compartilha a configuração e aplica a autenticação.

Agora manteremos a atribuição em massa segura com parâmetros fortes.

Perguntas Frequentes

A aula “Controladores e ações” é grátis?

Sim — o texto completo de “Controladores e ações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.

O que vou aprender em “Controladores e ações”?

Lide com requisições. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Ruby Academy?

Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Controladores e ações”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Ruby Academy?

Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Rotas e recursos
  2. Controladores e ações
  3. Parâmetros fortes
  4. Visões e renderização
← Voltar para Ruby Academy