Ruby on Rails is waarschijnlijk het bekendste Ruby framework. De eenvoud in gebruik, MVC-architectuur, community en schaalbaarheid zijn de redenen voor de populariteit.
Enkele van de grote namen die Ruby on Rails gebruiken zijn GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch en Zendesk, om er een paar te noemen.
Als u een gevorderde of ervaren Ruby on Rails-ingenieur bent, is het slim om de aard van de vragen te begrijpen die u waarschijnlijk in uw volgende sollicitatiegesprek zult tegenkomen.
Sollicitatiegesprekken kunnen eng zijn als u onvoorbereid bent. Als u echter goed voorbereid bent, zal uw zelfvertrouwen omhoog schieten en heeft u misschien het geluk om een nieuwe rol te krijgen bij uw droombedrijf.
Dit zijn enkele veelgestelde Ruby on Rails interviewvragen en hun antwoorden.

Wat is Ruby on Rails?
Ruby is een objectgeoriënteerde programmeertaal met een eenvoudige syntaxis.
Ruby on Rails is een Ruby framework dat ontwikkelaars gebruiken om webapplicaties te maken.
Bespreek de voordelen van Ruby on Rails
- Minder code dan andere talen: U kunt met Rails veel bereiken met slechts een paar regels code.
- Uitgebreide bibliotheken en edelstenen: Er bestaan tonnen bibliotheken en edelstenen om de functionaliteit van een Ruby on Rails-app te verbeteren.
- Gemakkelijk te leren: De code van Ruby on Rails ziet eruit als gewoon Engels.
- Een grote gemeenschap.
Bespreek de grenzen van Ruby on Rails
- In vergelijking met Django en Node.js zijn de runtime snelheid en prestaties van Rails laag.
- Beperkte documentatie voor sommige edelstenen.
- Ruby on Rails is eigenzinnig, wat de flexibiliteit van een ontwikkelaar beperkt.
Wat is een Rails-controller?
Het is het logische centrum van een Ruby on Rails-applicatie. De Rails-controller beheert, coördineert en controleert alle interacties tussen gebruikers, modellen en weergaven.
Wat is Active Record van Rails?
Active Record is een object relation mapping (ORM) techniek. Deze laag van Ruby code loopt tussen de logica van de code en uw database. Nadat u Ruby code hebt geschreven, voert u ‘migraties’ uit om wijzigingen in uw database aan te brengen.
Wat is MVC en hoe werkt het?
Het model-view-controller (MVC) architectuurpatroon scheidt de bedrijfslogica van de invoer- en presentatielogica.
- Model: behandelt alle gegevenslogica in een Rails-app.
- View: dit is het deel van de applicatie dat gebruikers bekijken.
- Controller: is als een brug of makelaar die het model en de weergave laat communiceren.
Wat is een action controller in Ruby on Rails?
De Action Controller is de C in het MVC-patroon. De Action Controller ontvangt inkomende verzoeken, maakt zich een beeld van het verzoek en produceert de juiste uitvoer.
Wat is rake in Rails?
Rake is een task runner voor Ruby on Rails en Ruby-toepassingen. Rails heeft voorgedefinieerde Rake taken voor het uitvoeren van tests, het uitvoeren van migraties en het maken van databases.
Wat is yield in Ruby on Rails?
Yield is een sleutelwoord dat gebruikt wordt binnen methods om een block aan te roepen. Er is geen beperking aan het aantal argumenten dat Yield aan het blok kan doorgeven. Blokken, in dit geval, zijn methodes zonder namen die doorgegeven kunnen worden als extra argumenten aan andere methodes.
Wat is Garbage Collection bij Ruby on Rails?
Garbage Collection is het proces van het controleren van geheugen dat door computerprogramma’s wordt gebruikt. Ruby on Rails houdt bij welke objecten door het programma worden gebruikt in plaats van de programmeur. De ontwikkelaars kunnen zich dus richten op logica en conventie in plaats van zich zorgen te maken over geheugentoewijzing.
Wat is de rol van Garbage Collection in de Rails-app?
Het maakt geheugen vrij op uw machine zodat andere processen het kunnen uitvoeren. Garbage collection bereikt dit door ontoegankelijke objecten die een programma na uitvoering achterlaat, te verwijderen.
Wat is een asset pipeline?
Een Asset Pipeline in Ruby on Rails biedt een framework dat CSS en JavaScript assets minificeert en samenvoegt. Met dit framework kunnen alle assets in uw Rails-app automatisch worden gecombineerd met assets van andere gems.
Onderscheid maken tussen dynamische en statische steigers
Scaffolding is het proces van het genereren van belangrijke onderdelen van Rails toepassingen.
Statische steigers voeren expliciet een commando in dat de vereiste gegevens in de respectievelijke velden produceert. Om statische steigers te voltooien, moet u migraties uitvoeren.
Dynamische steigers genereren inhoud en gebruikersinterfaces tijdens runtime. Dit proces kan gebruikt worden om acties in een Rails-app aan te maken, te wijzigen en te verwijderen.
Wat is een klassenbibliotheek?
Een klassenbibliotheek omvat domeinen in Ruby on Rails, en threadprogrammering en gegevenstypes zijn voorbeelden van zulke domeinen. Met een klassenbibliotheek kan een ontwikkelaar code abstraheren en dus dezelfde logica gebruiken binnen verschillende elementen in een app.
Polymorfe associatie in Rails beschrijven
Polymorphic Association is een type van Active Record Association. Polymorfisme betekent dat een object vele vormen kan hebben. In de Rails-context kunt u met Polymorphic Association een enkel model definiëren dat geassocieerd kan worden met of bij andere modellen kan horen zonder een herhaalde code te schrijven.
Wat is String Interpolatie in Ruby?
Stringinterpolatie is het toevoegen van plaatshouders die verwijzen naar andere waarden in een stringobject. Het gebruik van de opteloperator is de eenvoudigste manier om waarden te interpoleren.
Neem dit voorbeeld:
naam = "Titus"
zet "Hallo " naam
De uitvoer zal zijn;
Hallo Titus
Wat is een objectrelatiemodel (ORM)?
Een ORM is een brug tussen databases en objectgeoriënteerde programma’s. Een objectrelatie geeft in Rails aan wanneer klassen worden gekoppeld aan een tabel in uw database.
Rails migratie uitleggen
Migraties helpen ontwikkelaars om gemakkelijk wijzigingen in een databaseschema aan te brengen. Ontwikkelaars kunnen zo het uitrollen en terugdraaien in het databaseschema beheren in een gecontroleerde omgeving. Deze aanpak voorkomt dat u afzonderlijke SQL-scripts moet beheren om uw wijzigingen te definiëren.
Leg de naamgevingsconventie in Rails uit
- Klasse en module: gebruik MixedCase maar geen underscore. Namen in klassen en modules beginnen met een hoofdletter.
- Databasetabel: de naam van een databasetabel moet in het meervoud en in slangenletters zijn.
- Variabelen: letters die variabelen aangeven moeten in kleine letters en slangenletters zijn met een underscore als scheidingsteken.
- Model: gebruik MixedCase om een model te specificeren en zorg ervoor dat de naam in het enkelvoud staat.
- Controllers: namen van controllers worden in het meervoud gebruikt.
Wat is het verschil tussen string en tekst in Rails?
:string is geschikt wanneer u korte tekst van maximaal 255 tekens wilt opslaan. U kunt het gebruiken voor namen, gebruikersnamen, e-mails, wachtwoorden en titels.
:text past bij lange beschrijvingen. Perfecte voorbeelden voor commentaar op een blogpost of een winkelbeschrijving.
class CreatePosts < ActiveRecord::Migration
def self.up
create_table:posts do |t|
t.string:description
t.text :content
end
end
Uitleg over Cross-Site Request Forgery (CSRF)
Cross-Site Request Forgery (CSRF) is een online aanval waarbij aanvallers geauthenticeerde gebruikers in de val lokken om bepaalde acties namens hen uit te voeren.
Rails vereist dat ontwikkelaars “protect_from_forgery” toevoegen aan de ApplicationController om CSRF-aanvallen te voorkomen. De app zal altijd een CSRF-token nodig hebben om een gebruiker te authenticeren.
Leg uit wat een mixin is in Rails
Een mixin biedt een gecontroleerde manier om functionaliteiten aan een klasse toe te voegen. Een klasse bestaat uit veel verschillende mixins. Mixins maken meerdere overervingen overbodig.
Wat is het gebruik van load en require in Ruby?
require( ) wordt gebruikt om bibliotheken/gems te importeren
load() wordt gebruikt om een blok code uit te voeren
Wat is het verschil tussen callbacks en observers in Ruby on Rails?
Rails observers worden gebruikt wanneer een methode niet direct gerelateerd is aan de levenscyclus van een object. Hun levenscycli zijn groot, en ze kunnen op elk moment worden aangekoppeld of losgekoppeld.
Callbacks kunnen alleen worden aangeroepen op specifieke momenten in de levenscyclus van een object. Voorbeelden van zulke momenten zijn updates, creatie en validatie. Callbacks zijn slechts korte tijd actief.
Wat zijn Harnesses en Fixtures in Ruby?
Fixtures verwijzen naar een manier om gegevens te organiseren die u wilt testen. Ze kunnen worden aangemaakt in bestanden die eindigen op een .yml extensie.
Harnesses is de omgeving of testrunner voor het uitvoeren van Rails-tests. Fixtures worden ingesteld in Harnesses.
Wat is het verschil tussen extend en include?
“Include” voegt een instantie methode toe aan een klasse. De code zal dus toegankelijk zijn via klassemethoden.
“Extend” voegt instantiemethoden die in de module gedefinieerd zijn toe aan de uitgebreide klasse.
Zijn gems en plugins hetzelfde in Ruby?
Gems zijn verpakte Ruby toepassingen die geïnstalleerd moeten worden. Ze zijn voor algemeen gebruik en zijn niet afhankelijk van Rails voor functionaliteit.
Plugins in Ruby on Rails worden samen met uw Rails applicatie geïnstalleerd. Ze wijzigen of voegen toe aan de kernfunctionaliteit van Rails.
Wat zijn Rails observers?
Rails observer biedt een mechanisme waarbij een object de anderen informeert wanneer zijn toestand verandert. Het is toepasbaar in een één-op-veel relatie zodat wanneer één object verandert, alle afhankelijke objecten automatisch geïnformeerd en gewijzigd worden.
Welk commando wordt gebruikt om een migratie te maken?
bin/rails db:migrate
Laat zien hoe u klasse-, instance- en globale variabelen in Ruby definieert
- Klassevariabelen: Kunnen overal binnen hun klasse gebruikt worden. De afstammelingen van de klasse hebben er ook toegang toe. Ze beginnen met @@.
- Instance-variabelen: Worden gebruikt in het lokale bereik dat specifiek is voor de instanties van het gemaakte object. Ze kunnen van object tot object verschillen. Ze beginnen met @.
- Globale variabelen:Overaltoegankelijkbinnen het programma. Begint met $.
Welke rol speelt rakefile, beschikbaar in de demodirectory in Ruby?
Rakefile helpt bij het testen en verpakken van Rails code. Het bestand definieert de taken die tests uitvoeren of de functies van de toepassing demonstreren.
Wat is een sweeper in Rails?
Sweepers fungeren als terminators in caching. Ze fungeren als half-filters en half-observers en implementeren callbacks voor de twee rollen. De ‘expire_cache’ vindt alle cachefragmenten die moeten verlopen en wist ze,
Wat zijn filters?
Dit zijn methodes “voor” of “na” de actie van een controller wordt uitgevoerd. Dergelijke methoden worden geërfd en worden uitgevoerd bij elk verzoek dat uw app ontvangt, zolang u ze hebt ingesteld in de ApplicationController.
Onderscheid tussen redirect en render in Rails
Render: wordt gebruikt om een sjabloon te renderen en vervolgens naar de client te sturen als antwoord op het verzoek. Dit sjabloon genereert dan de pagina die de browser zal weergeven.
Redirect: stuurt een nieuw HTTP-verzoek naar een andere URL. Deze actie leidt de client door naar een andere controller of actie. Deze methode is handig wanneer u de URL wilt veranderen die clients in de browser zien.
Onderscheid maken tussen super() aanroepen en super aanroepen
- Super: stuurt een bericht naar de ouder van het huidige object om alle argumenten van de aangeroepen methode aan te roepen.
- super() : stuurt geen argumenten naar de ouder.
Wat is het verschil tussen procs en blokken?
- Blokken: Een stuk code omgeven door do/end statements of accolades. Ze worden aangemaakt en uitgevoerd telkens wanneer de methode wordt aangeroepen.
- Procs: Blokken code die samen gebonden zijn aan een set lokale variabelen. Deze code kan in verschillende contexten worden aangeroepen en heeft nog steeds toegang tot de variabelen.
Wat is het verschil tussen puts en print statements?
We gebruiken puts wanneer we iets op het scherm willen afdrukken. Bijvoorbeeld,
puts "Hello World!!!"
Hiermee drukken we Hello World!!! af op het scherm
We gebruiken print als we geen nieuwe regel aan de console willen toevoegen.
print "Hello World!!!"
Geeft Hello World!!! weer , maar er wordt geen nieuwe regel aan de console toegevoegd.
Wat zijn dynamische zoekers?
Met dynamische zoekers kunnen ontwikkelaars naar records in hun database zoeken zonder onbewerkte SQL-query’s te gebruiken. Ze gebruiken het trefwoord find_by_ , dat vervolgens gevolgd wordt door het attribuut waarop gezocht moet worden.
Leg uit hoe Rail ajax implementeert
- Een trigger, zoals het indienen van een formulier of het klikken op een knop, wordt gestart.
- De JavaScript-methode stuurt de triggergegevens naar een handler op de server.
- De handler op de server bewerkt de gegevens en stuurt HTML naar de webclient.
- De JavaScript-handler op de client ontvangt de HTML-inhoud en werkt de huidige pagina bij.
Dig, Float en Max uitleggen
- Met de Dig methode kunt u waarden uit geneste hashes of arrays halen.
- Float is een Ruby gegevenstype dat reële getallen met floating-point precisie vertegenwoordigt.
- Max is een methode die gebruikt kan worden met arrays en hashes. Het geeft de maximale waarde in een verzameling items/waarden.
array = [2, 9, 4, 7, 3]
maximum = array.max
De console geeft 9 weer omdat dit het grootste getal is.
Conclusie
Hierboven staan enkele vragen die u waarschijnlijk in uw volgende Ruby on Rails zult tegenkomen. Als u een allround software engineer bent, bekijk dan deze Node.js interviewvragen. Zorg ervoor dat u de functiebeschrijving van een Rails engineer begrijpt voordat u naar uw volgende interview gaat.