Ruby: Imparare Ruby

Una guida completa su Ruby e Rails

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Ruby cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Distribuisci la tua applicazione in pochi secondi con un semplice git push.
  • Usa il tuo nome di dominio e beneficia della configurazione automatica dei certificati HTTPS per una sicurezza potenziata.
  • Goditi la tranquillità con backup automatici, aggiornamenti con un clic, e una tariffazione semplice, trasparente e prevedibile.
  • Ottieni prestazioni ottimali e una sicurezza robusta grazie a una VM privata e dedicata.

Risparmia tempo e semplificati la vita: bastano solo 5 minuti per provare la soluzione Ruby cloud hosting di Stackhero!

Ruby è un linguaggio di programmazione interpretato di alto livello progettato per la semplicità e la produttività. La sua sintassi elegante consente agli sviluppatori di ottenere di più con meno codice, supportando i paradigmi di programmazione procedurale, orientata agli oggetti e funzionale.

Ruby on Rails, spesso semplicemente chiamato Rails o RoR, è un robusto framework per applicazioni web scritto in Ruby. Costruito sul modello Model-View-Controller (MVC), Rails promuove la convenzione rispetto alla configurazione e enfatizza il principio DRY (Don't Repeat Yourself), rendendo più facile ed efficiente la costruzione di applicazioni web complesse.

L'interfaccia a riga di comando (CLI) di Rails è uno strumento potente per gestire la tua applicazione Rails. Include comandi per creare nuovi progetti, avviare il server, accedere all'applicazione tramite la console e generare vari componenti come modelli e controller. Di seguito sono riportati alcuni comandi essenziali che ogni sviluppatore Rails dovrebbe conoscere:

  1. Creare un nuovo progetto Rails:

    rails new project_name
    
  2. Avviare il server Rails:

    rails server
    
  3. Aprire la console Rails:

    rails console
    
  4. Generare un nuovo controller:

    rails generate controller controller_name action_name
    
  5. Generare un nuovo modello:

    rails generate model ModelName field:type
    
  6. Eseguire le migrazioni del database:

    rails db:migrate
    

Il routing collega le richieste in arrivo ai controller e alle azioni appropriate in un'applicazione Rails. Offre un modo semplice per progettare URL e endpoint per la tua app. Le rotte sono definite nel file config/routes.rb. Ecco alcuni modelli di routing comuni:

  1. Rotta radice:

    root 'controller_name#action_name'
    
  2. Rotta generica:

    get '/path', to: 'controller#action'
    
  3. Rotta risorsa (genera rotte CRUD standard):

    resources :model_name
    

I controller fungono da intermediari tra modelli e viste ricevendo le richieste in arrivo e rendendo le risposte appropriate. I seguenti esempi illustrano azioni comuni del controller per elencare, mostrare, creare, aggiornare e eliminare risorse:

  1. Azione index (elenca tutti gli oggetti):

    def index
      @objects = ModelName.all
    end
    
  2. Azione show (visualizza un singolo oggetto):

    def show
      @object = ModelName.find(params[:id])
    end
    
  3. Azione new (visualizza il modulo per un nuovo oggetto):

    def new
      @object = ModelName.new
    end
    
  4. Azione create (salva un nuovo oggetto):

    def create
      @object = ModelName.new(params.require(:model_name).permit(:field1, :field2))
      if @object.save
        redirect_to @object
      else
        render :new
      end
    end
    
  5. Azione edit (visualizza il modulo per modificare un oggetto esistente):

    def edit
      @object = ModelName.find(params[:id])
    end
    
  6. Azione update (applica modifiche a un oggetto esistente):

    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. Azione destroy (elimina un oggetto):

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

ActiveRecord è il sistema di object-relational mapping (ORM) integrato di Rails. Astrae le interazioni con il database e ti consente di lavorare con i record del database come oggetti Ruby nativi. Ecco alcune query ActiveRecord comuni per recuperare e manipolare i dati:

  1. Recuperare tutti gli oggetti:

    ModelName.all
    
  2. Trovare un oggetto per ID:

    ModelName.find(id)
    
  3. Trovare un oggetto per un valore di campo specifico:

    ModelName.find_by(field: value)
    

Embedded Ruby (ERB) è un sistema di templating che ti consente di scrivere HTML con codice Ruby incorporato. Gli helper ERB sono metodi che semplificano le attività comuni nelle viste. Ecco alcuni esempi:

  1. Creare un link:

    <%= link_to "Link Text", path %>
    
  2. Visualizzare i messaggi di errore:

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

Le migrazioni ti permettono di evolvere il tuo schema di database in modo coerente e verificabile. Utilizzano un DSL Ruby, quindi non devi scrivere SQL grezzo a mano, rendendo le modifiche allo schema indipendenti dal database. Ecco come creare ed eseguire una migrazione:

  1. Creare una nuova migrazione:

    rails generate migration MigrationName
    
  2. Nel file di migrazione generato (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