Die 53 besten Ruby on Rails-Interviewfragen und -antworten (2025)
Hier finden Sie Fragen und Antworten zu Ruby on Rails-Interviews für Erstsemester sowie erfahrene Ruby-Entwicklerkandidaten, die ihren Traumjob bekommen möchten.
1) Erklären Sie, was Ruby on Rails ist?
- Rubin: Es handelt sich um eine objektorientierte Programmiersprache, die von PERL, Smalltalk, Eiffel, Ada, Basic und Lisp inspiriert ist.
- Schienen: Es handelt sich um ein Framework zum Erstellen von Webanwendungen
2) Erklären Sie, was Klassenbibliotheken in Ruby sind.
Klassenbibliotheken in Ruby bestehen aus einer Vielzahl von Domänen, wie z. B. Datentypen, Thread-Programmierung, verschiedenen Domänen usw.
Kostenloser PDF-Download: Fragen und Antworten zum Ruby on Rails-Interview
3) Erwähnen Sie, wie die Namenskonvention in Rails lautet.
- Variablen: Bei der Deklaration von Variablen werden alle Buchstaben in Kleinbuchstaben geschrieben und Wörter werden durch Unterstriche getrennt
- Klasse und Modul: Module und Klassen verwenden MixedCase und haben keinen Unterstrich; Jedes Wort beginnt mit einem Großbuchstaben
- Datenbanktabelle: Der Name der Datenbanktabelle sollte Kleinbuchstaben und einen Unterstrich zwischen den Wörtern enthalten, und alle Tabellennamen sollten im Plural vorliegen, zum Beispiel „invoice_items“.
- Modell: Es wird durch ununterbrochenes MixedCase dargestellt und hat immer einen Singular mit dem Tabellennamen
- Regler: Controller-Klassennamen werden im Plural dargestellt, sodass OrdersController der Controller für die Bestelltabelle wäre.
4) Erklären Sie, was „Yield“ in Ruby on Rails ist.
Eine Ruby-Methode, die einen Codeblock empfängt, ruft ihn auf, indem sie ihn mit „Yield“ aufruft.
5) Erklären Sie, was ORM (Object-Relationship-Model) in Rails ist.
ORM oder Object Relationship Model in Rails gibt an, dass Ihre Klassen der Tabelle in der Datenbank zugeordnet werden und Objekte direkt den Zeilen in der Tabelle zugeordnet werden.
6) Erwähnen Sie, was der Unterschied zwischen false und nil in Ruby ist?
In Ruby ist false ein Objekt von FalseClass zur Darstellung eines booleschen Werts, während Nil ein Objekt von NilClass ist, das das Fehlen eines Werts anzeigt. Es hat eine object_id 4.
7) Erwähnen Sie, was die positiven Aspekte von Rails sind?
Rails bietet viele Funktionen wie
- Metaprogrammierung: Rails nutzt die Codegenerierung, für schwere Arbeiten ist es jedoch auf Metaprogrammierung angewiesen. Ruby gilt als eine der besten Sprachen für Metaprogrammierung.
- Aktiver Rekord: Es speichert Objekte über Active Record Framework in der Datenbank. Die Rails-Version von Active Record identifiziert die Spalte in einem Schema und bindet sie mithilfe von Metaprogrammierung automatisch an Ihre Domänenobjekte
- Gerüst: Rails bietet die Möglichkeit, automatisch Gerüste oder temporären Code zu erstellen
- Konvention über Konfiguration: Im Gegensatz zu anderen Entwicklungsframeworks erfordert Rails nicht viel Konfiguration, wenn Sie die Namenskonvention sorgfältig befolgen
- Drei Umgebungen: Rails verfügt über drei Standardumgebungen für Test, Entwicklung und Produktion.
- Integrierte Tests: Es unterstützt Code namens Harness und Fixtures, der das Schreiben und Ausführen von Testfällen ermöglicht.
8) Erklären Sie, welche Rolle die Unterverzeichnisse app/controllers und app/helpers spielen.
- App/Controller: Eine Webanfrage des Benutzers wird vom Controller bearbeitet. Im Controller-Unterverzeichnis sucht Rails nach Controller-Klassen
- App/helpers: Das Unterverzeichnis des Helfers enthält alle Hilfsklassen, die zur Unterstützung der Ansichts-, Modell- und Controller-Klassen verwendet werden.
9) Erwähnen Sie, was der Unterschied zwischen String und Symbol ist?
Beide handeln auf die gleiche Weise, nur unterscheiden sie sich in ihren Verhaltensweisen, die einander entgegengesetzt sind. Der Unterschied liegt in der Objekt-ID, dem Speicher und der Prozessabstimmung, wenn sie zusammen verwendet werden. Symbole gehören zur Kategorie der unveränderlichen Objekte, während Zeichenfolgen als veränderliche Objekte betrachtet werden.
10) Erklären Sie, wie sich Symbol von Variablen unterscheidet.
Das Symbol unterscheidet sich in folgenden Aspekten von Variablen
- Es ähnelt eher einer Zeichenfolge als einer Variablen
- In Ruby ist eine Zeichenfolge veränderbar, ein Symbol jedoch unveränderlich
- Es muss nur eine Kopie des Symbols erstellt werden
- Symbole werden in Ruby häufig als Entsprechung für Aufzählungen verwendet
11) Erklären Sie, was Rails Active Record in Ruby on Rails ist.
Der aktive Datensatz von Rails ist die mit Rails bereitgestellte Object/Relational Mapping (ORM)-Ebene. Es folgt dem Standard-ORM-Modell als
- Tabellenzuordnung zu Klassen
- Zeilen werden Objekten zugeordnet
- Spalten werden Objektattributen zugeordnet
12) Erklären Sie, wie Rails implementiert wird Ajax?
Eine von Ajax betriebene Webseite ruft die neue oder geänderte Webseite vom Server ab, im Gegensatz zu anderen Webseiten, bei denen Sie die Seite aktualisieren müssen, um die neuesten Informationen zu erhalten.
Rails löst eine Ajax-Operation auf folgende Weise aus
- Einige lösen Brände aus: Der Auslöser könnte sein, dass ein Benutzer auf einen Link oder eine Schaltfläche klickt und Änderungen an den Daten im Feld oder in einem Formular herbeiführt
- Der Webclient ruft den Server auf: Eine Java-Script-Methode, XMLHttpRequest, sendet mit dem Trigger verknüpfte Daten an einen Aktionshandler auf dem Server. Bei den Daten kann es sich um die ID einer Checkbox, das gesamte Formular oder den Text im Eingabefeld handeln
- Der Server verarbeitet Folgendes: Der serverseitige Aktionshandler macht etwas mit den Daten und ruft eine ab HTML Fragment an den Webclient
- Der Kunde erhält die Antwort: Das clientseitige JavaScript, das Rails automatisch generiert, empfängt das HTML-Fragment und verwendet es, um einen bestimmten Teil des aktuellen zu aktualisieren
13) Erwähnen Sie, wie Sie einen Controller für das Thema erstellen können?
Um einen Controller für den Betreff zu erstellen, können Sie den folgenden Befehl verwenden
C:\ruby\library> Ruby-Skript/Controller-Betreff generieren
14) Erwähnen Sie, was Rails Migration ist?
Mit der Rails-Migration kann Ruby Änderungen am Datenbankschema vornehmen und so mithilfe eines Versionskontrollsystems dafür sorgen, dass die Dinge mit dem tatsächlichen Code synchronisiert bleiben.
15) Listen Sie auf, was die Rails-Migration bewirken kann.
Rails Migration kann folgende Dinge tun
- Tabelle erstellen
- Tabelle löschen
- Tabelle umbenennen
- Spalte hinzufügen
- Spalte umbenennen
- Spalte ändern
- Spalte entfernen usw
16) Erwähnen Sie den Befehl zum Erstellen einer Migration.
Zum Erstellen eines Migrationsbefehls gehören:
C:\ruby\application>Ruby-Skript/Name der Migrationstabelle generieren
17) Erklären Sie, wann die Methoden self.up und self.down verwendet werden.
Bei der Migration auf eine neue Version selbst.up Methode wird verwendet, während self.down Die Methode wird verwendet, um meine Änderungen bei Bedarf rückgängig zu machen.
18) Erwähnen Sie, welche Rolle der Rails Controller spielt?
Der Rails-Controller ist das logische Zentrum der Anwendung. Es erleichtert die Interaktion zwischen den Benutzern, Ansichten und dem Modell. Es führt auch andere Aktivitäten aus wie
- Es ist in der Lage, externe Anfragen an interne Aktionen weiterzuleiten. Es verarbeitet URLs sehr gut
- Es regelt Hilfsmodule, die die Fähigkeiten der Ansichtsvorlagen erweitern, ohne deren Code zu überladen
- Es regelt Sitzungen; Dadurch entsteht beim Nutzer der Eindruck einer fortlaufenden Interaktion mit unseren Anwendungen
19) Erwähnen Sie, was der Unterschied zwischen „HashWithIndifferent“ von Active Support und „Hash“ von Ruby ist?
Das Hasch Die Klasse in der Kernbibliothek von Ruby gibt einen Wert unter Verwendung eines Standards zurück „= =“ Vergleich auf den Tasten. Dies bedeutet, dass der für a gespeicherte Wert Symbol Der Schlüssel kann nicht mit der entsprechenden Zeichenfolge abgerufen werden. Während HashWithIndifferentAccess Behandelt Symbolschlüssel und Zeichenfolgenschlüssel als gleichwertig.
20) Erklären Sie, was Cross-Site Request Forgery (CSRF) ist und wie Rails davor geschützt ist.
CSRF ist eine Angriffsform, bei der ein Hacker in Ihrem Namen eine Seitenanforderung an eine andere Website sendet, wodurch Schaden entsteht oder Ihre sensiblen Daten preisgegeben werden. Zum Schutz vor CSRF-Angriffen müssen Sie Folgendes hinzufügen „protect_from_forgery“ auf Ihre Anwendungscontroller. Dies führt dazu, dass Rails ein CSRF-Token benötigt, um die Anfrage zu verarbeiten. Das CSRF-Token wird als verstecktes Feld in jedem Formular angegeben, das mit Rails-Formularerstellern erstellt wird.
21) Erklären Sie, was Mixin in Rails ist?
Mixin in Ruby bietet eine Alternative zu Mehrfachvererbungen, da Mixin-Module in andere Klassen importiert werden können.
22) Erklären Sie, wie Sie Instanzvariablen, globale Variablen und Klassenvariablen in Ruby definieren.
- Die Ruby-Instanzvariable beginnt mit – @
- Ruby-Klassenvariablen beginnen mit – @@
- Ruby Global-Variablen beginnen mit – $
23) Erklären Sie, wie Sie eine Rails-Anwendung ausführen können, ohne Datenbanken zu erstellen.
Sie können Ihre Anwendung ausführen, indem Sie die Zeile in „environment.rb“ auskommentieren
path=> rootpath conf/environment.rb
config.frameworks = [ action_web_service, :action_mailer, :active_record]
24) Erwähnen Sie, was der Unterschied zwischen den Beobachtern und Rückrufen in Ruby on Rails ist?
- Rails-Beobachter: Observers ist dasselbe wie Callback, wird jedoch verwendet, wenn die Methode nicht direkt mit dem Objektlebenszyklus verknüpft ist. Außerdem hat der Beobachter eine längere Lebensdauer und kann jederzeit abgenommen oder angebracht werden. Beispielsweise das Anzeigen von Werten aus einem Modell in der Benutzeroberfläche und das Aktualisieren des Modells anhand von Benutzereingaben.
- Rails-Rückruf: Rückrufe sind Methoden, die zu bestimmten Zeitpunkten im Lebenszyklus eines Objekts aufgerufen werden können, beispielsweise wenn ein Objekt validiert, erstellt, aktualisiert oder gelöscht wird. Ein Rückruf ist nur von kurzer Dauer. Führen Sie beispielsweise einen Thread aus und geben Sie einen Rückruf aus, der aufgerufen wird, wenn der Thread beendet wird
25) Erklären Sie, was Rake in Rails ist.
Rake ist eine Ruby-Marke; Es handelt sich um ein Ruby-Dienstprogramm, das das Unix-Dienstprogramm „make“ ersetzt und ein „Rakefile“ und „.rake-Dateien“ verwendet, um eine Liste von Aufgaben zu erstellen. In Rails wird Rake für normale Verwaltungsaufgaben wie die Migration der Datenbank über Skripte, das Laden eines Schemas in die Datenbank usw. verwendet.
26) Erklären Sie, wie Sie alle Routen für eine Anwendung auflisten können.
Um alle Routen für eine Anwendung aufzulisten, können Sie Rake-Routen im Terminal schreiben.
27) Erklären Sie, was Sweeper in Rails ist.
Sweeper sind dafür verantwortlich, Caches ablaufen zu lassen oder zu beenden, wenn sich Modellobjekte ändern.
28) Erwähnen Sie das Protokoll, das angezeigt werden muss, um Fehler in Ruby Rails zu melden?
Rails meldet Fehler von Apache im log/Apache.log und Fehler vom Ruby-Code in log/development.log.
29) Erklären Sie, was der Unterschied zwischen dynamischem und statischem Gerüst ist.
Dynamisches Gerüst | Statisches Gerüst |
|
|
30) Erwähnen Sie, welche Funktion die Garbage Collection in Ruby on Rails hat.
Die Funktionen der Garbage Collection in Ruby on Rails umfassen
- Es ermöglicht das Entfernen der Zeigerwerte, die zurückbleiben, wenn die Ausführung des Programms endet
- Es befreit den Programmierer davon, das Objekt zu verfolgen, das dynamisch zur Laufzeit erstellt wird
- Dies bietet den Vorteil, dass unzugängliche Objekte aus dem Speicher entfernt werden und anderen Prozessen ermöglicht wird, den Speicher zu nutzen
31) Erwähnen Sie, was der Unterschied zwischen Redirect und Render in Ruby on Rails ist?
- Redirect ist eine Methode, die verwendet wird, um eine Fehlermeldung auszugeben, falls die Seite nicht ausgegeben oder im Browser nicht gefunden wird. Es weist den Browser an, eine neue Anfrage zu verarbeiten und auszugeben.
- Render ist eine Methode zur Erstellung des Inhalts. Das Rendern funktioniert nur, wenn der Controller ordnungsgemäß mit den Variablen eingerichtet ist, die gerendert werden müssen.
32) Erwähnen Sie den Zweck von RJs in Rails?
RJs ist eine Vorlage, die JavaScript erzeugt, das vom Browser als Antwort auf eine AJAX-Anfrage in einem Auswertungsblock ausgeführt wird. Es wird manchmal verwendet, um das von Rails bereitgestellte JavaScript, den Prototyp und die Hilfsprogramme zu definieren.
33) Erklären Sie, was Polymorphic Association in Ruby on Rails ist.
Polymorphic Association ermöglicht die Verbindung eines ActiveRecord-Objekts mit mehreren ActiveRecord-Objekten. Ein perfektes Beispiel für Polymorphic Association ist eine soziale Website, auf der Benutzer überall Kommentare abgeben können, sei es Videos, Fotos, Links, Statusaktualisierungen usw. Es wäre nicht möglich, wenn Sie einen einzelnen Kommentar wie Fotos_Kommentare, Videos_Kommentare usw. erstellen müssten .
34) Erwähnen Sie, wo die Grenzen von Ruby on Rails liegen?
Ruby on Rails wurde für die Erstellung einer CRUD-Webanwendung mit MVC entwickelt. Dies könnte dazu führen, dass Rails für andere Programmierer nicht nützlich ist. Zu den Funktionen, die Rails nicht unterstützt, gehören:
- Fremdschlüssel in Datenbanken
- Verknüpfung mit mehreren Datenbanken gleichzeitig
- Soap-Webdienste
- Verbindung zu mehreren Datenbankservern gleichzeitig
35) Erwähnen Sie, was der Unterschied zwischen dem Aufruf von super() und dem Aufruf von super ist.
- Super(): Ein Aufruf von super() ruft die übergeordnete Methode ohne Argumente auf, wie vermutlich erwartet. Wie immer ist es eine gute Sache, in Ihrem Code explizit zu sein.
- Super Anruf: Ein Aufruf von super ruft die übergeordnete Methode mit denselben Argumenten auf, die an die untergeordnete Methode übergeben wurden. Daher tritt ein Fehler auf, wenn die an die untergeordnete Methode übergebenen Argumente nicht mit den Erwartungen der übergeordneten Methode übereinstimmen.
36) Erklären Sie etwas über Dig, Float und Max?
- Die Float-Klasse wird immer dann verwendet, wenn sich die Funktion ständig ändert.
- Dig wird immer dann verwendet, wenn Sie eine Gleitkommazahl in Dezimalstellen darstellen möchten.
- Max kommt immer dann zum Einsatz, wenn ein großer Bedarf an Float besteht.
37) Erklären Sie, wie wir reguläre Ruby-Ausdrücke definieren können.
Der reguläre Ruby-Ausdruck ist eine spezielle Zeichenfolge, die Ihnen hilft, andere Zeichenfolgen abzugleichen oder zu finden. Ein reguläres Ausdrucksliteral ist ein Muster zwischen beliebigen Trennzeichen oder Schrägstrichen, gefolgt von %r.
38) Erklären Sie, was der definierte Operator ist.
Der Definitionsoperator gibt an, ob ein übergebener Ausdruck definiert ist oder nicht. Wenn der Ausdruck definiert ist, gibt er die Beschreibungszeichenfolge zurück. Wenn er nicht definiert ist, gibt er einen Nullwert zurück.
39) Die wenigen Funktionen von Ruby auflisten?
- Freies Format – Sie können aus dem Programm heraus in jeder Zeile und Spalte mit dem Schreiben beginnen
- Groß- und Kleinschreibung beachten – Groß- und Kleinbuchstaben sind unterschiedlich
- Kommentare – Alles, gefolgt von einem nicht zitierten Kommentar #, bis zum Ende der Zeile, in der es erscheint, wird vom Interpreter ignoriert
- Anweisungstrennzeichen – Mehrere Anweisungen in einer Zeile müssen durch Semikolons getrennt werden, sie sind jedoch am Ende einer Zeile nicht erforderlich.
40) Erwähnen Sie die in der Ruby-Klasse verfügbaren Variablentypen?
In der Ruby-Klasse verfügbare Variablentypen sind:
- Lokale Variablen
- Globale Variablen
- Klassenvariablen
- Instanzvariablen
41) Erklären Sie, wie Sie einen Block in Ruby deklarieren können.
In Ruby ist der Code im Block immer in geschweifte Klammern ({}) eingeschlossen. Sie können einen Block aufrufen, indem Sie die „yield-Anweisung“ verwenden.
42) Erklären Sie, was der Unterschied zwischen Put- und Putc-Anweisung ist.
Im Gegensatz zur puts-Anweisung, die die gesamte Zeichenfolge auf dem Bildschirm ausgibt. Mit der Putc-Anweisung kann jeweils ein Zeichen ausgegeben werden.
43) Erklären Sie, was eine Klassenbibliothek in Ruby ist.
Ruby-Klassenbibliotheken bestehen aus einer Vielzahl von Domänen, wie Thread-Programmierung, Datentypen, verschiedenen Domänen usw. Diese Klassen bieten flexible Funktionen auf einem hohen Abstraktionsniveau und geben Ihnen die Möglichkeit, leistungsstarke Ruby-Skripte zu erstellen, die für eine Vielzahl von Problemen nützlich sind Domänen. Die folgenden Domänen mit relevanten Klassenbibliotheken sind:
- GUI-Programmierung
- Netzwerkprogrammierung
- CGI-Programmierung
- Textverarbeitung
44) In Ruby wird der definierte Operator erklärt?
Der definierte Operator gibt an, ob ein übergebener Ausdruck definiert ist oder nicht. Wenn der Ausdruck nicht definiert ist, gibt er null zurück, und wenn der Ausdruck definiert ist, gibt er die Beschreibungszeichenfolge zurück.
45) Erwähnen Sie den Unterschied im Gültigkeitsbereich dieser beiden Variablen: @@name und @name?
Der Unterschied im Geltungsbereich dieser beiden Variablen besteht darin, dass:
- @@name ist eine Klassenvariable
- @name ist eine Instanzvariable
46) Erwähnen Sie, wie die Syntax für Ruby Collect Iterator lautet.
Die Syntax für Ruby Collect Iterator Collection = Collection.Collect.
47) Im Ruby-Code wird häufig beobachtet, dass der Programmierer eine Kurzform für die Verwendung eines Ausdrucks wie verwendet Array.map(&:method_name) anstelle von array.map { |element| element.method_name }. Wie funktioniert dieser Trick eigentlich?
Wenn ein Parameter mit „&“ davor übergeben wird. Ruby ruft darauf to_proc auf, um es als Block nutzbar zu machen. Das Symbol to_Proc ruft also die Methode mit dem entsprechenden Namen für alles auf, was ihm übergeben wird. So hilft unser Kurzschrift-Trick, zu funktionieren.
48) Erklären Sie, was Interpolation in Ruby ist.
Bei der Ruby-Interpolation wird ein String in ein Literal eingefügt. Durch Platzieren eines Hash-Zeichens (#) innerhalb der öffnenden und schließenden {}-Klammern kann man eine Zeichenfolge in das Literal interpolieren.
49) Erwähnen Sie, welche Notation zur Bezeichnung von Klassenvariablen in Ruby verwendet wird?
In Ruby,
- Eine Konstante sollte mit einem Großbuchstaben beginnen und nicht innerhalb einer Methode definiert werden
- Ein Local muss mit dem Unterstrich _ oder einem Kleinbuchstaben beginnen
- Eine globale Variable sollte mit dem $-Zeichen beginnen. Ein nicht initialisiertes Global hat den Wert „nil“ und sollte es auch sein erhöhen eine Warnung. Es kann überall im Programm referenziert werden.
- Eine Klassenvariable sollte mit doppeltem @@ beginnen und muss zunächst initialisiert werden, bevor sie in einer Methodendefinition verwendet werden kann
50) Erwähnen Sie, was der Unterschied zwischen Procs und Blocks ist?
Der Unterschied zwischen Prozessen und Blöcken,
- Block ist nur der Teil der Syntax einer Methode, während proc die Eigenschaften eines Blocks aufweist
- Prozesse sind Objekte, Blöcke nicht
- In einer Argumentliste kann höchstens ein Block vorkommen
- Nur Block kann nicht in einer Variablen gespeichert werden, während Proc dies kann
51) Erwähnen Sie, was der Unterschied zwischen einem einfachen und einem doppelten Anführungszeichen ist.
Zeichenfolgen in einfachen Anführungszeichen verarbeiten keine ASCII-Escape-Codes und führen keine Zeichenfolgeninterpolation durch.
52) Erwähnen Sie, was der Unterschied zwischen einem Gem und einem Plugin in Ruby ist?
- Juwel: Ein Edelstein ist ein reiner Ruby-Code. Es wird auf einer Maschine installiert und ist für alle Ruby-Anwendungen verfügbar, die auf dieser Maschine ausgeführt werden.
- Plugin: Das Plugin ist ebenfalls Ruby-Code, wird jedoch im Anwendungsordner installiert und ist nur für diese bestimmte Anwendung verfügbar.
53) Erwähnen Sie, was der Unterschied zwischen Extend und Includes ist.
„include“ stellt die Methoden des Moduls der Instanz einer Klasse zur Verfügung, während „extend“ diese Methoden der Klasse selbst zur Verfügung stellt.
Diese Interviewfragen helfen auch bei Ihrer mündlichen Prüfung
Ertrag ist keine Funktion. Es ist das Schlüsselwort Ruby, das zum Ausführen des Blocks verwendet wird.
Insbesondere übergibt yield die Kontrolle über den Thread (höchstwahrscheinlich Main.thread) an den Block, der entweder explizit als Parameter übergeben wurde, z. B. def my_method(&my_block). Alternativ könnte ein Block auch implizit übergeben worden sein, z
my_class.my_method tun
# Code in diesem Block wird innerhalb der aufrufenden Methode übergeben
Ende
sehr schön... weiter so
Toller Inhalt!
Zu Frage Nr. 6: In Ruby gibt es keine „Boolesche“ Klasse und daher keinen „Booleschen Typ“. Es gibt nur TrueClass und FalseClass.
Es ist aktualisiert.
Gut
gut
eigentlich Thread.main … mein Fehler :)
Ruby ist nicht von Python inspiriert, sondern wurde von Folgendem inspiriert (Perl, Smalltalk, Eiffel, Ada, BASIC und Lisp)
Es ist aktualisiert.
Ja…
Schöner Blick auf Ruby und Rails
6) nil.object_id ist gleich 8