Ruby: Ações dos controladores Rails

Esta documentação faz parte do guia Aprender Ruby. Consulte o guia completo aqui: Um guia abrangente de Ruby e Rails.

👋 Bem-vindo à documentação do Stackhero!

A Stackhero oferece uma solução Ruby cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Implemente a sua aplicação em segundos com um simples git push.
  • Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para uma segurança reforçada.
  • Desfrute de tranquilidade com backups automáticos, atualizações com um clique, e preços simples, transparentes e previsíveis.
  • Obtenha desempenho ótimo e segurança robusta graças a uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: só leva 5 minutos para experimentar a solução de Ruby cloud hosting da Stackhero!

Os controladores servem como intermediários entre modelos e vistas, recebendo pedidos e renderizando as respostas apropriadas. Os exemplos seguintes ilustram ações comuns de controladores para listar, mostrar, criar, atualizar e eliminar recursos:

  1. Ação index (listar todos os objetos):

    def index
      @objects = ModelName.all
    end
    
  2. Ação show (mostrar um único objeto):

    def show
      @object = ModelName.find(params[:id])
    end
    
  3. Ação new (mostrar formulário para um novo objeto):

    def new
      @object = ModelName.new
    end
    
  4. Ação create (guardar um novo objeto):

    def create
      @object = ModelName.new(params.require(:model_name).permit(:field1, :field2))
      if @object.save
        redirect_to @object
      else
        render :new
      end
    end
    
  5. Ação edit (mostrar formulário para editar um objeto existente):

    def edit
      @object = ModelName.find(params[:id])
    end
    
  6. Ação update (aplicar alterações a um objeto existente):

    def update
      @object = ModelName.find(params[:id])
      if @object.update(params.require(:model_name).permit(:field1, :field2))
        redirect_to @object
      else
        render :edit
      end
    end
    
  7. Ação destroy (eliminar um objeto):

    def destroy
      @object = ModelName.find(params[:id])
      @object.destroy
      redirect_to model_name_path
    end