Le 53 migliori domande e risposte all'intervista su Ruby on Rails (2025)

Ecco le domande e le risposte all'intervista di Ruby on Rails per i principianti e per i candidati sviluppatori Ruby esperti per ottenere il lavoro dei loro sogni.

1) Spiega cos'è Ruby on Rails?

  • Rubino: È un linguaggio di programmazione orientato agli oggetti ispirato a PERL, Smalltalk, Eiffel, Ada, Basic e Lisp.
  • Rotaie: È un framework utilizzato per creare applicazioni web

2) Spiega cosa sono le librerie di classi in Ruby?

Le librerie di classi in Ruby sono costituite da una varietà di domini, come tipi di dati, programmazione di thread, vari domini, ecc.

Download gratuito del PDF: domande e risposte all'intervista su Ruby on Rails


3) Menzionare qual è la convenzione di denominazione in Rails?

  • variabili: Per dichiarare le variabili, tutte le lettere sono minuscole e le parole sono separate da trattini bassi
  • Classe e Modulo: I moduli e le classi utilizzano MixedCase e non hanno un carattere di sottolineatura; ogni parola inizia con una lettera maiuscola
  • Tabella banca dati: Il nome della tabella del database deve contenere lettere minuscole e un carattere di sottolineatura tra le parole e tutti i nomi delle tabelle devono essere nella forma plurale, ad esempio fatture_articoli
  • Modello: È rappresentato da MixedCase ininterrotto e ha sempre il singolare con il nome della tabella
  • controller: I nomi delle classi controller sono rappresentati in forma plurale, in modo tale che OrdersController sia il controller per la tabella degli ordini.

4) Spiegare cos'è lo “Yield” in Ruby on Rails?

Un metodo Ruby che riceve un blocco di codice lo invoca chiamandolo con lo “Yield”.


5) Spiegare cos'è l'ORM (Object-Relationship-Model) in Rails?

ORM o Object Relationship Model in Rails indicano che le tue classi sono mappate sulla tabella nel database e gli oggetti sono direttamente mappati sulle righe nella tabella.


6) Menziona qual è la differenza tra falso e zero in Ruby?

In Ruby false è un oggetto di FalseClass per rappresentare un valore booleano, mentre Nil è un oggetto di NilClass che indica l'assenza di un valore. Ha un object_id 4.

Domande per l'intervista su Ruby on Rails
Domande per l'intervista su Ruby on Rails


7) Menziona quali sono gli aspetti positivi di Rails?

Rails offre molte funzionalità come

  • Metaprogrammazione: Rails utilizza la generazione di codice ma per i lavori pesanti si affida alla meta-programmazione. Ruby è considerato uno dei migliori linguaggi per la metaprogrammazione.
  • Registrazione attiva: Salva l'oggetto nel database tramite Active Record Framework. La versione Rails di Active Record identifica le colonne in uno schema e le associa automaticamente agli oggetti del tuo dominio utilizzando la metaprogrammazione
  • Impalcatura: Le rotaie hanno la capacità di creare automaticamente impalcature o codice temporaneo
  • Convenzione sulla configurazione: A differenza di altri framework di sviluppo, Rails non richiede molta configurazione, se si segue attentamente la convenzione di denominazione
  • Tre ambienti: Rails viene fornito con tre ambienti predefiniti di test, sviluppo e produzione.
  • Test integrati: Supporta codice chiamato cablaggio e dispositivi che creano casi di test da scrivere ed eseguire.

8) Spiegare qual è il ruolo delle sottodirectory app/controller e app/helpers?

  • App/controller: una richiesta web dell'utente viene gestita dal controller. La sottodirectory del controller è dove Rails cerca le classi del controller
  • App/helpers: la sottodirectory dell'helper contiene tutte le classi helper utilizzate per assistere le classi di visualizzazione, modello e controller.

9) Menziona qual è la differenza tra stringa e simbolo?

Entrambi agiscono allo stesso modo solo che differiscono nei loro comportamenti che sono opposti l'uno all'altro. La differenza sta nell'object_id, nella memoria e nella sintonizzazione del processo quando vengono utilizzati insieme. Il simbolo appartiene alla categoria degli oggetti immutabili mentre le stringhe sono considerate oggetti mutabili.


10) Spiegare in cosa il simbolo è diverso dalle variabili?

Il simbolo è diverso dalle variabili nei seguenti aspetti

  • È più simile a una stringa che a una variabile
  • In Ruby la stringa è mutabile ma un simbolo è immutabile
  • È necessario creare una sola copia del simbolo
  • I simboli sono spesso usati come corrispondenti alle enumerazioni in Ruby

11) Spiegare cos'è Rails Active Record in Ruby on Rails?

Il record attivo di Rails è il livello Object/Relational Mapping (ORM) fornito con Rails. Segue il modello ORM standard come

  • Mappa delle tabelle per le classi
  • Le righe vengono mappate sugli oggetti
  • Le colonne vengono mappate agli attributi dell'oggetto

12) Spiegare come viene implementato Rails Ajax?

La pagina Web alimentata da Ajax recupera la pagina Web dal server che è nuova o modificata a differenza di altre pagine Web in cui è necessario aggiornare la pagina per ottenere le informazioni più recenti.

Rails attiva un'operazione Ajax nei seguenti modi

  • Alcuni innescano incendi: Il trigger potrebbe essere un utente che fa clic su un collegamento o un pulsante, gli utenti che inducono modifiche ai dati nel campo o in un modulo
  • Il client Web chiama il server: Un metodo Java-script, XMLHttpRequest, invia i dati collegati al trigger a un gestore di azioni sul server. I dati potrebbero essere l'ID di una casella di controllo, l'intero modulo o il testo nel campo di immissione
  • Il server elabora: Il gestore dell'azione lato server fa qualcosa con i dati e recupera un file HTML frammento al client Web
  • Il cliente riceve la risposta: Il JavaScript lato client, che Rails genera automaticamente, riceve il frammento HTML e lo utilizza per aggiornare una parte particolare dell'attuale

13) Menziona come puoi creare un controller per il soggetto?

Per creare un controller per soggetto è possibile utilizzare il seguente comando

C:\ruby\library> script ruby/genera oggetto controller


14) Menzionare cos'è la migrazione di Rails?

Rails Migration consente a Ruby di apportare modifiche allo schema del database, rendendo possibile l'utilizzo di un sistema di controllo della versione per lasciare le cose sincronizzate con il codice effettivo.


15) Elencare cosa può fare Rails Migration?

Rails Migration può eseguire le seguenti operazioni

  • Crea una tabella
  • tavola a caduta
  • Rinomina tabella
  • Aggiungi colonna
  • Rinomina colonna
  • Cambia colonna
  • Rimuovi la colonna e così via

16) Menziona qual è il comando per creare una migrazione?

Per creare il comando di migrazione include

C:\ruby\application>script ruby/genera nome_tabella di migrazione


17) Spiegare quando viene utilizzato il metodo self.up e self.down?

Durante la migrazione a una nuova versione, self.up viene utilizzato il metodo while self.down viene utilizzato per ripristinare le modifiche, se necessario.


18) Menzionare qual è il ruolo del Rails Controller?

Il controller Rails è il centro logico dell'applicazione. Facilita l'interazione tra gli utenti, le viste e il modello. Svolge anche altre attività come

  • È in grado di instradare richieste esterne ad azioni interne. Gestisce l'URL estremamente bene
  • Regola i moduli helper, che estendono le capacità dei modelli di visualizzazione senza ingrossare il loro codice
  • Regola le sessioni; che dà agli utenti l'impressione di un'interazione continua con le nostre applicazioni

19) Menziona qual è la differenza tra "HashWithIndifferent" di Active Support e "Hash" di Ruby?

. Hash nella libreria principale di Ruby restituisce valore utilizzando uno standard “= =” confronto sui tasti. Significa che il valore memorizzato per a simbolo la chiave non può essere recuperata utilizzando la stringa equivalente. Mentre il HashConAccessoIndifferente tratta le chiavi Symbol e le chiavi String come equivalenti.


20) Spiegare cos'è il Cross-Site Request Forgery (CSRF) e come è protetto Rails da esso?

CSRF è una forma di attacco in cui l'hacker invia una richiesta di pagina per tuo conto a un sito Web diverso, causando danni o rivelando i tuoi dati sensibili. Per proteggersi dagli attacchi CSRF, devi aggiungere “proteggere_da_falsificazione” alla tua Controller dell'applicazione. Ciò farà sì che Rails richieda un token CSRF per elaborare la richiesta. Il token CSRF viene fornito come campo nascosto in ogni modulo creato utilizzando i costruttori di moduli Rails.


21) Spiegare cos'è Mixin in Rails?

Mixin in Ruby offre un'alternativa alle eredità multiple, utilizzando i moduli mixin che possono essere importati all'interno di altre classi.


22) Spiega come definisci la variabile di istanza, la variabile globale e la variabile di classe in Ruby?

  • La variabile dell'istanza Ruby inizia con — @
  • Le variabili della classe Ruby iniziano con — @@
  • Le variabili globali Ruby iniziano con — $

23) Spiegare come è possibile eseguire l'applicazione Rails senza creare database?

Puoi eseguire la tua applicazione rimuovendo il commento dalla riga in Environment.rb

percorso=> percorsoroot conf/ambiente.rb

config.frameworks = [ action_web_service, :action_mailer, :active_record]

24) Menziona qual è la differenza tra Observers e Callbacks in Ruby on Rails?

  • Osservatori delle rotaie: Observers è uguale a Callback, ma viene utilizzato quando il metodo non è direttamente associato al ciclo di vita dell'oggetto. Inoltre, l'osservatore vive più a lungo e può essere distaccato o attaccato in qualsiasi momento. Ad esempio, la visualizzazione dei valori di un modello nell'interfaccia utente e l'aggiornamento del modello dall'input dell'utente.
  • Richiamata di Rails: I callback sono metodi che possono essere chiamati in determinati momenti del ciclo di vita di un oggetto, ad esempio quando un oggetto viene convalidato, creato, aggiornato, eliminato. Un callback è di breve durata. Ad esempio, eseguendo un thread e fornendo una richiamata che viene chiamata quando il thread termina

25) Spiegare cos'è il rastrello in Rails?

Rake è un rubino; è un'utilità Ruby che sostituisce l'utilità Unix 'make' e utilizza un 'Rakefile' e un 'file .rake' per creare un elenco di attività. In Rails, Rake viene utilizzato per normali attività di amministrazione come la migrazione del database tramite script, il caricamento di uno schema nel database, ecc.


26) Spiegare come è possibile elencare tutti i percorsi per un'applicazione?

Per elencare tutti i percorsi per un'applicazione puoi scrivere i percorsi rake nel terminale.


27) Spiegare cos'è la spazzatrice in Rails?

Gli Sweeper sono responsabili della scadenza o della chiusura delle cache quando l'oggetto del modello cambia.


28) Menzionare il log che deve essere visto per segnalare errori in Ruby Rails?

Rails riporterà gli errori di Apache nel log/Apache.log e gli errori del codice Ruby nel log/development.log.


29) Spiegare qual è la differenza tra ponteggio dinamico e statico?

Ponteggio dinamico Ponteggio statico
  • Crea automaticamente l'intero contenuto e l'interfaccia utente in fase di esecuzione
  • Consente la generazione di metodi nuovi, eliminati e modificati per l'utilizzo nell'applicazione
  • Non necessita di un database per essere sincronizzato
  • Richiede l'immissione manuale nel comando per creare i dati con i relativi campi
  • Non è necessario che avvenga tale generazione
  • Richiede la migrazione del database

30) Menziona qual è la funzione della garbage collection in Ruby on Rails?

Include le funzioni di garbage collection in Ruby on Rails

  • Abilita la rimozione dei valori del puntatore che vengono lasciati indietro al termine dell'esecuzione del programma
  • Libera il programmatore dal tracciare l'oggetto che viene creato dinamicamente in fase di runtime
  • Offre il vantaggio di rimuovere gli oggetti inaccessibili dalla memoria e consente ad altri processi di utilizzare la memoria

31) Menziona qual è la differenza tra reindirizzamento e rendering in Ruby on Rails?

  • Il reindirizzamento è un metodo utilizzato per emettere un messaggio di errore nel caso in cui la pagina non venga emessa o trovata nel browser. Dice al browser di elaborare ed emettere una nuova richiesta.
  • Il rendering è un metodo utilizzato per creare il contenuto. Il rendering funziona solo quando il controller è configurato correttamente con le variabili che richiedono il rendering.

32) Menzionare qual è lo scopo dei RJ in Rails?

RJs è un modello che produce JavaScript che viene eseguito in un blocco di valutazione dal browser in risposta a una richiesta AJAX. A volte viene utilizzato per definire JavaScript, Prototype e gli helper forniti da Rails.


33) Spiegare cos'è l'associazione polimorfica in Ruby on Rails?

L'associazione polimorfica consente a un oggetto ActiveRecord di essere connesso a più oggetti ActiveRecord. Un perfetto esempio di Polymorphic Association è un sito social in cui gli utenti possono commentare ovunque, sia che si tratti di video, foto, collegamenti, aggiornamenti di stato, ecc. Non sarebbe fattibile se dovessi creare un commento individuale come commenti_foto, commento_video e così via .


34) Menziona quali sono i limiti di Ruby on Rails?

Ruby on Rails è stato progettato per creare un'applicazione web CRUD utilizzando MVC. Ciò potrebbe rendere Rails non utile per altri programmatori. Alcune delle funzionalità che Rails non supporta includono

  • Chiave esterna nei database
  • Collegamento a più database contemporaneamente
  • Servizi web di sapone
  • Connessione a più server di database contemporaneamente

35) Menziona qual è la differenza tra chiamare super() e super call?

  • super(): Una chiamata a super() invoca il metodo genitore senza argomenti, come presumibilmente previsto. Come sempre, essere espliciti nel codice è una buona cosa.
  • super chiamata: Una chiamata a super invoca il metodo genitore con gli stessi argomenti passati al metodo figlio. Si verificherà quindi un errore se gli argomenti passati al metodo figlio non corrispondono a ciò che il genitore si aspetta.

36) Spiegare Dig, Float e Max?

  • La classe float viene utilizzata ogni volta che la funzione cambia costantemente.
  • Dig viene utilizzato ogni volta che si desidera rappresentare un float in cifre decimali.
  • Max viene utilizzato ogni volta che vi è un enorme bisogno di Float.

37) Spiega come possiamo definire le espressioni regolari di Ruby?

L'espressione regolare di Ruby è una sequenza speciale di caratteri che ti aiuta ad abbinare o trovare altre stringhe. Un valore letterale di un'espressione regolare è uno schema tra delimitatori o barre arbitrari seguiti da %r.


38) Spiegare cos'è l'operatore definito?

L'operatore Define indica se un'espressione passata è definita o meno. Se l'espressione è definita restituisce la stringa di descrizione mentre se non è definita restituisce un valore nullo.


39) Elenca le poche funzionalità di Ruby?

  • Formato libero: puoi iniziare a scrivere dal programma da qualsiasi riga e colonna
  • Maiuscole e minuscole: le lettere maiuscole e minuscole sono distinte
  • Commenti – Tutto ciò che è seguito da un non quotato #, fino alla fine della riga su cui appare, viene ignorato dall'interprete
  • Delimitatori di istruzioni: più istruzioni su una riga devono essere separate da punto e virgola, ma non sono obbligatorie alla fine di una riga.

40) Menzionare i tipi di variabili disponibili in Ruby Class?

I tipi di variabili disponibili in Ruby Class sono:

  • Variabili locali
  • Variabili globali
  • Variabili di classe
  • Variabili di istanza

41) Spiega come puoi dichiarare un blocco in Ruby?

In Ruby, il codice nel blocco è sempre racchiuso tra parentesi graffe ({}). Puoi invocare un blocco utilizzando la "istruzione rendimento".


42) Spiega qual è la differenza tra l'istruzione put e putc?

A differenza dell'istruzione puts, che visualizza l'intera stringa sullo schermo. L'istruzione Putc può essere utilizzata per restituire un carattere alla volta.


43) Spiegare cos'è una libreria di classi in Ruby?

Le librerie di classi Ruby sono costituite da una varietà di domini, come programmazione di thread, tipi di dati, vari domini, ecc. Queste classi offrono funzionalità flessibili ad un alto livello di astrazione, dandoti la possibilità di creare potenti script Ruby utili in una varietà di problemi domini. I seguenti domini che hanno librerie di classi rilevanti sono,

  • Programmazione GUI
  • Programmazione di rete
  • Programmazione CGI
  • Elaborazione del testo

44) In Ruby, viene spiegato l'operatore definito?

L'operatore definito indica se un'espressione passata è definita o meno. Se l'espressione non è definita restituisce null, mentre se l'espressione è definita restituisce la stringa di descrizione.


45) Menziona qual è la differenza nell'ambito di queste due variabili: @@name e @name?

La differenza nell’ambito di queste due variabili è che:

  • @@name è una variabile di classe
  • @name è una variabile di istanza

46) Menziona qual è la sintassi per Ruby Collect Iterator?

La sintassi per Ruby Collect Iterator collection = collection.collect.


47) Nel codice Ruby, spesso si osserva che il programmatore usa una forma abbreviata per usare l'espressione like schieramento.map(&:method_name) invece di array.map { |element| elemento.nome_metodo }. Come funziona effettivamente questo trucco?

Quando un parametro viene passato con "&" davanti. Ruby chiamerà to_proc su di esso nel tentativo di renderlo utilizzabile come blocco. Quindi, il simbolo to_Proc invocherà il metodo del nome corrispondente su qualunque cosa gli venga passata. Aiutando così il nostro trucco stenografico a funzionare.


48) Spiegare cos'è l'interpolazione in Ruby?

Ruby Interpolation è il processo di inserimento di una stringa in un valore letterale. Inserendo un hash (#) tra parentesi aperte e chiuse {}, è possibile interpolare una stringa nel valore letterale.


49) Menziona qual è la notazione utilizzata per denotare le variabili di classe in Ruby?

In Rubino,

  • Una costante dovrebbe iniziare con una lettera maiuscola e non dovrebbe essere definita all'interno di un metodo
  • Una lingua locale deve iniziare con il segno di sottolineatura _ o con una lettera minuscola
  • Una variabile globale dovrebbe iniziare con il segno $. Un globale non inizializzato ha il valore di "zero" e dovrebbe aumentare un avvertimento. Può essere indicato ovunque nel programma.
  • Una variabile di classe dovrebbe iniziare con double @@ e deve essere inizializzata prima di essere utilizzata nella definizione di un metodo

50) Menziona qual è la differenza tra Procs e Blocks?

La differenza tra Procs e Blocks,

  • Block è solo la parte della sintassi di un metodo mentre proc ha le caratteristiche di un blocco
  • I processi sono oggetti, i blocchi no
  • In una lista di argomenti può apparire al massimo un blocco
  • Solo il blocco non può essere memorizzato in una variabile mentre Proc può

51) Menziona qual è la differenza tra una virgoletta singola e una virgoletta doppia?

Le stringhe con virgolette singole non elaborano i codici di escape ASCII e non eseguono l'interpolazione delle stringhe.


52) Menziona qual è la differenza tra una gemma e un plugin in Ruby?

  • Gemma: Una gemma è semplicemente un codice rubino. È installato su una macchina ed è disponibile per tutte le applicazioni Ruby in esecuzione su quella macchina.
  • Collegare: Anche il plugin è in codice Ruby, ma è installato nella cartella dell'applicazione ed è disponibile solo per quella specifica applicazione.

53) Menziona qual è la differenza tra estensione e inclusione?

"include" rende i metodi del modulo disponibili all'istanza di una classe, mentre "extend" rende questi metodi disponibili alla classe stessa.

Queste domande del colloquio ti aiuteranno anche nel tuo viva(orale)

Condividi

Commenti

  1. Avatar Hasanuzzaman Sumon dice:

    Il rendimento non è una funzione. È la parola chiave Ruby utilizzata per eseguire il blocco.

    1. Avatar Terry Ray dice:

      Nello specifico yield passerà il controllo del thread (molto probabilmente Main.thread) al blocco che è stato passato esplicitamente come parametro, ad esempio def my_method(&my_block) O in alternativa un blocco potrebbe essere stato passato implicitamente come ad esempio

      mia_classe.mio_metodo esegui
      # il codice in questo blocco verrà ceduto all'interno del metodo chiamante
      fine

  2. Giorgio Armando dice:

    alla domanda n.6, in Ruby non esiste una classe “Boolean”, quindi nessun “tipo Boolean”. Ci sono solo TrueClass e FalseClass.

  3. Avatar Terry Ray dice:

    in realtà Thread.main... colpa mia :)

  4. Ruby non è ispirato a Python, è stato ispirato da quanto segue (Perl, Smalltalk, Eiffel, Ada, BASIC e Lisp)

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *