Ruby: Aprender Ruby

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!

Ruby é uma linguagem de programação interpretada de alto nível, projetada para simplicidade e produtividade. A sua sintaxe elegante permite que os desenvolvedores realizem mais com menos código, suportando paradigmas de programação procedimental, orientada a objetos e funcional.

Ruby on Rails, muitas vezes simplesmente chamado de Rails ou RoR, é um framework robusto para aplicações web escrito em Ruby. Construído sobre o padrão Model-View-Controller (MVC), Rails promove a convenção sobre configuração e enfatiza o princípio DRY (Don't Repeat Yourself), tornando mais fácil e eficiente construir aplicações web complexas.

A interface de linha de comando (CLI) do Rails é uma ferramenta poderosa para gerir a sua aplicação Rails. Inclui comandos para criar novos projetos, iniciar o servidor, aceder à aplicação via consola, e gerar vários componentes como modelos e controladores. Abaixo estão alguns comandos essenciais que todo desenvolvedor Rails deve conhecer:

  1. Criar um novo projeto Rails:

    rails new project_name
    
  2. Iniciar o servidor Rails:

    rails server
    
  3. Abrir a consola Rails:

    rails console
    
  4. Gerar um novo controlador:

    rails generate controller controller_name action_name
    
  5. Gerar um novo modelo:

    rails generate model ModelName field:type
    
  6. Executar migrações de base de dados:

    rails db:migrate
    

O roteamento conecta pedidos recebidos aos controladores e ações apropriados numa aplicação Rails. Oferece uma forma simples de desenhar URLs e endpoints para a sua aplicação. As rotas são definidas no ficheiro config/routes.rb. Aqui estão alguns padrões de roteamento comuns:

  1. Rota raiz:

    root 'controller_name#action_name'
    
  2. Rota genérica:

    get '/path', to: 'controller#action'
    
  3. Rota de recurso (gera rotas CRUD padrão):

    resources :model_name
    

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
    

ActiveRecord é o sistema de object-relational mapping (ORM) integrado do Rails. Abstrai as interações com a base de dados e permite trabalhar com registos de base de dados como objetos Ruby nativos. Aqui estão algumas consultas comuns do ActiveRecord para buscar e manipular dados:

  1. Recuperar todos os objetos:

    ModelName.all
    
  2. Encontrar um objeto por ID:

    ModelName.find(id)
    
  3. Encontrar um objeto por um valor de campo específico:

    ModelName.find_by(field: value)
    

Embedded Ruby (ERB) é um sistema de templating que permite escrever HTML com código Ruby embutido. Os helpers ERB são métodos que simplificam tarefas comuns nas vistas. Aqui estão alguns exemplos:

  1. Criar um link:

    <%= link_to "Link Text", path %>
    
  2. Exibir mensagens de erro:

    <% @object.errors.full_messages.each do |message| %>
      <div><%= message %></div>
    <% end %>
    

As migrações permitem evoluir o esquema da sua base de dados de forma consistente e verificável. Utilizam um DSL Ruby, por isso não é necessário escrever SQL bruto à mão, tornando as alterações de esquema independentes da base de dados. Aqui está como criar e executar uma migração:

  1. Criar uma nova migração:

    rails generate migration MigrationName
    
  2. No ficheiro de migração gerado (db/migrate/):

    class MigrationName < ActiveRecord::Migration[6.0]
      def change
        add_column :table_name, :column_name, :type
        remove_column :table_name, :column_name
      end
    end