Top 53 Ruby on Rails-interviewvragen en antwoorden (2024)

Hier zijn Ruby on Rails-sollicitatievragen en -antwoorden voor zowel eerstejaars als ervaren Ruby-ontwikkelaarskandidaten om hun droombaan te krijgen.

1) Leg uit wat Ruby on Rails is?

  • Robijn: Het is een objectgeoriënteerde programmeertaal geïnspireerd door PERL, Smalltalk, Eiffel, Ada, Basic en Lisp.
  • Sporen: Het is een raamwerk dat wordt gebruikt voor het bouwen van webapplicaties

2) Leg uit wat klassenbibliotheken in Ruby zijn?

Klassenbibliotheken in Ruby bestaan ​​uit een verscheidenheid aan domeinen, zoals gegevenstypen, threadprogrammering, verschillende domeinen, enz.

Gratis pdf-download: vragen en antwoorden over Ruby on Rails-interviews


3) Vermeld wat de naamgevingsconventie in Rails is?

  • variabelen: Bij het declareren van variabelen zijn alle letters kleine letters en worden de woorden gescheiden door onderstrepingstekens
  • Klasse en module: Modules en klassen gebruiken MixedCase en hebben geen onderstrepingsteken; elk woord begint met een hoofdletter
  • Databasetabel: De naam van de databasetabel moet kleine letters en een onderstrepingsteken tussen de woorden bevatten, en alle tabelnamen moeten in het meervoud staan, bijvoorbeeld factuur_items
  • Model: Het wordt vertegenwoordigd door een ononderbroken MixedCase en heeft altijd enkelvoud met de tabelnaam
  • controller: Namen van controllerklassen worden in meervoud weergegeven, zodat OrdersController de controller voor de ordertabel zou zijn.

4) Leg uit wat “Yield” is in Ruby on Rails?

Een Ruby-methode die een codeblok ontvangt, roept het aan door het aan te roepen met de “Yield”.


5) Leg uit wat ORM (Object-Relationship-Model) is in Rails?

ORM of Object Relationship Model in Rails geeft aan dat uw klassen worden toegewezen aan de tabel in de database, en dat objecten rechtstreeks worden toegewezen aan de rijen in de tabel.


6) Noem wat het verschil is tussen false en nil in Ruby?

In Ruby is false een object van FalseClass dat een Booleaanse waarde vertegenwoordigt, terwijl Nil een object van NilClass is dat de afwezigheid van een waarde aangeeft. Het heeft een object_id 4.

Sollicitatievragen bij Ruby on Rails
Sollicitatievragen bij Ruby on Rails


7) Noem wat de positieve aspecten van Rails zijn?

Rails biedt vele functies, zoals

  • Metaprogrammering: Rails maakt gebruik van codegeneratie, maar voor het zware werk vertrouwt het op metaprogrammering. Ruby wordt beschouwd als een van de beste talen voor metaprogrammering.
  • Actieve opname: Het slaat objecten op in de database via Active Record Framework. De Rails-versie van Active Record identificeert de kolom in een schema en bindt deze automatisch aan uw domeinobjecten met behulp van metaprogrammering
  • Steiger: Rails hebben de mogelijkheid om automatisch steigers of tijdelijke code te creëren
  • Conventie over configuratie: In tegenstelling tot andere ontwikkelingsframeworks vereist Rails niet veel configuratie, als je de naamgevingsconventie zorgvuldig volgt
  • Drie omgevingen: Rails wordt geleverd met drie standaardomgevingstests, -ontwikkeling en -productie.
  • Ingebouwde testen: Het ondersteunt code genaamd harnas en armaturen waarmee testgevallen kunnen worden geschreven en uitgevoerd.

8) Leg uit wat de rol is van de subdirectory app/controllers en app/helpers?

  • App/controllers: Een webverzoek van de gebruiker wordt afgehandeld door de Controller. In de submap van de controller zoekt Rails naar controllerklassen
  • App/helpers: De submap van de helper bevat alle helperklassen die worden gebruikt om de weergave-, model- en controllerklassen te ondersteunen.

9) Noem wat het verschil is tussen String en Symbol?

Ze handelen allebei op dezelfde manier, alleen verschillen ze in hun gedrag dat tegengesteld is aan elkaar. Het verschil ligt in de object_id, het geheugen en de procesafstemming wanneer ze samen worden gebruikt. Symbool behoort tot de categorie van onveranderlijke objecten, terwijl Strings als veranderlijke objecten worden beschouwd.


10) Leg uit hoe symbool verschilt van variabelen?

Het symbool verschilt van variabelen in de volgende aspecten

  • Het lijkt meer op een string dan op een variabele
  • In Ruby is de string veranderlijk, maar een symbool is onveranderlijk
  • Er hoeft slechts één kopie van het symbool te worden gemaakt
  • Symbolen worden vaak gebruikt als corresponderende met opsommingen in Ruby

11) Leg uit wat Rails Active Record is in Ruby on Rails?

Het actieve record van Rails is de Object/Relational Mapping (ORM)-laag die bij Rails wordt geleverd. Het volgt het standaard ORM-model als

  • Tabeloverzicht naar klassen
  • Rijen worden toegewezen aan objecten
  • Kolommen worden toegewezen aan objectkenmerken

12) Leg uit hoe Rails dit implementeert Ajax?

Door Ajax aangedreven webpagina haalt de webpagina op van de server die nieuw of gewijzigd is, in tegenstelling tot andere webpagina's waarbij u de pagina moet vernieuwen om de laatste informatie te krijgen.

Rails activeert op de volgende manieren een Ajax-operatie

  • Sommige veroorzaken branden: De trigger kan zijn dat een gebruiker op een link of knop klikt, waarbij de gebruikers wijzigingen in de gegevens in het veld of op een formulier teweegbrengen
  • Webclient belt de server: Een Java-scriptmethode, XMLHttpRequest, verzendt gegevens gekoppeld aan de trigger naar een actie-handler op de server. De gegevens kunnen de ID van een selectievakje zijn, het hele formulier of de tekst in het invoerveld
  • Server verwerkt: De actiehandler aan de serverzijde doet iets met de gegevens en haalt een HTML fragmenteren naar de webclient
  • Klant ontvangt het antwoord: Het JavaScript aan de clientzijde, dat Rails automatisch genereert, ontvangt het HTML-fragment en gebruikt het om een ​​bepaald deel van de huidige versie bij te werken

13) Noem hoe je een controller voor het onderwerp kunt maken?

Om een ​​controller voor onderwerp te maken, kunt u de volgende opdracht gebruiken

C:\ruby\bibliotheek> ruby-script/controlleronderwerp genereren


14) Noem wat spoorwegmigratie is?

Met Rails Migration kan Ruby wijzigingen aanbrengen in het databaseschema, waardoor het mogelijk wordt een versiebeheersysteem te gebruiken om de zaken gesynchroniseerd te laten met de daadwerkelijke code.


15) Noem eens wat Rails Migration kan doen?

Rails Migration kan de volgende dingen doen

  • Maak een tabel
  • Laat de tafel vallen
  • Tabel hernoemen
  • Kolom toevoegen
  • Kolom hernoemen
  • Wijzig kolom
  • Verwijder kolom enzovoort

16) Noem wat de opdracht is om een ​​migratie te creëren?

Om een ​​migratieopdracht aan te maken, omvat

C:\ruby\application>ruby-script/genereer migratietabelnaam


17) Leg uit wanneer de self.up- en self.down-methoden worden gebruikt?

Wanneer u naar een nieuwe versie migreert, zelf.omhoog methode wordt gebruikt terwijl zelf.naar beneden methode wordt gebruikt om mijn wijzigingen indien nodig terug te draaien.


18) Vermeld wat de rol van Rails Controller is?

De Rails-controller is het logische centrum van de applicatie. Het vergemakkelijkt de interactie tussen de gebruikers, weergaven en het model. Het voert ook andere activiteiten uit, zoals

  • Het is in staat externe verzoeken om te leiden naar interne acties. Het verwerkt de URL buitengewoon goed
  • Het regelt helpermodules, die de mogelijkheden van de weergavesjablonen uitbreiden zonder de code te vergroten
  • Het reguleert sessies; dat geeft gebruikers de indruk van een voortdurende interactie met onze applicaties

19) Noem wat het verschil is tussen “HashWithIndifferent” van Actieve ondersteuning en “Hash” van Ruby?

De Hachee klasse in de kernbibliotheek van Ruby retourneert waarde door een standaard te gebruiken “==” vergelijking op de toetsen. Het betekent dat de waarde die is opgeslagen voor a symbool sleutel kan niet worden opgehaald met behulp van de equivalente tekenreeks. Terwijl de HashWithIndifferentAccess behandelt symbooltoetsen en tekenreekstoetsen als gelijkwaardig.


20) Leg uit wat Cross-Site Request Forgery (CSRF) is en hoe Rails hiertegen wordt beschermd?

CSRF is een vorm van aanval waarbij een hacker namens u een paginaverzoek indient op een andere website, waardoor schade wordt aangericht of uw gevoelige gegevens openbaar worden gemaakt. Om u te beschermen tegen CSRF-aanvallen, moet u toevoegen “bescherm_tegen_vervalsing” aan jouw Applicatiecontroller. Dit zorgt ervoor dat Rails een CSRF-token nodig heeft om het verzoek te verwerken. CSRF-token wordt gegeven als een verborgen veld in elk formulier dat is gemaakt met behulp van Rails-formulierbouwers.


21) Leg uit wat Mixin in Rails is?

Mixin in Ruby biedt een alternatief voor meerdere overervingen, waarbij mixin-modules in een andere klasse kunnen worden geïmporteerd.


22) Leg uit hoe u instancevariabele, globale variabele en klassevariabele in Ruby definieert?

  • Ruby Instance-variabele begint met — @
  • Ruby Class-variabelen beginnen met — @@
  • Ruby Globale variabelen beginnen met — $

23) Leg uit hoe u de Rails-applicatie kunt uitvoeren zonder databases te maken?

U kunt uw toepassing uitvoeren door de regel in Environment.rb te verwijderen

path=> hoofdpad conf/environment.rb

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

24) Noem wat het verschil is tussen waarnemers en callbacks in Ruby on Rails?

  • Spoorwegwaarnemers: Observers is hetzelfde als Callback, maar wordt gebruikt wanneer de methode niet direct is gekoppeld aan de objectlevenscyclus. Bovendien leeft de waarnemer langer en kan hij op elk moment worden losgemaakt of gehecht. Bijvoorbeeld het weergeven van waarden uit een model in de gebruikersinterface en het bijwerken van het model op basis van gebruikersinvoer.
  • Rails-terugbelverzoek: Callbacks zijn methoden die op bepaalde momenten in de levenscyclus van een object kunnen worden aangeroepen. Het kan bijvoorbeeld worden aangeroepen wanneer een object wordt gevalideerd, gemaakt, bijgewerkt of verwijderd. Een callback is van korte duur. Bijvoorbeeld het uitvoeren van een thread en het geven van een call-back die wordt aangeroepen wanneer de thread wordt beëindigd

25) Leg uit wat rake is in Rails?

Rake is een Ruby-merk; het is een Ruby-hulpprogramma dat het Unix-hulpprogramma 'make' vervangt en een 'Rakefile' en '.rake files' gebruikt om een ​​lijst met taken op te bouwen. In Rails wordt Rake gebruikt voor normale beheertaken, zoals het migreren van de database via scripts, het laden van een schema in de database, enz.


26) Leg uit hoe je alle routes voor een aanvraag kunt vermelden?

Om alle routes voor een applicatie weer te geven, kunt u harkroutes in de terminal schrijven.


27) Leg uit wat een veegmachine is in Rails?

Veegmachines zijn verantwoordelijk voor het verlopen of beëindigen van caches wanneer het modelobject verandert.


28) Vermeld het logboek dat moet worden bekeken om fouten in Ruby Rails te melden?

Rails rapporteert fouten van Apache in log/Apache.log en fouten van de Ruby-code in log/development.log.


29) Leg uit wat het verschil is tussen dynamische en statische steigers?

Dynamische steigers Statische steigers
  • Het creëert tijdens runtime automatisch de volledige inhoud en gebruikersinterface
  • Het maakt het mogelijk om nieuwe, verwijder- en bewerkingsmethoden te genereren voor gebruik in de toepassing
  • Er is geen database nodig om te synchroniseren
  • Het vereist handmatige invoer in de opdracht om de gegevens met hun velden te creëren
  • Het is niet nodig dat een dergelijke generatie plaatsvindt
  • Hiervoor moet de database worden gemigreerd

30) Noem wat de functie is van de afvalinzameling in Ruby on Rails?

De functies van afvalinzameling in Ruby on Rails omvatten:

  • Het maakt het mogelijk de pointerwaarden te verwijderen die achterblijven wanneer de uitvoering van het programma eindigt
  • Het bevrijdt de programmeur van het volgen van het object dat dynamisch tijdens runtime wordt gemaakt
  • Het biedt het voordeel dat de ontoegankelijke objecten uit het geheugen worden verwijderd en dat andere processen het geheugen kunnen gebruiken

31) Noem wat het verschil is tussen redirect en render in Ruby on Rails?

  • Omleiding is een methode die wordt gebruikt om een ​​foutmelding te geven als de pagina niet wordt uitgegeven of gevonden in de browser. Het vertelt de browser dat hij een nieuw verzoek moet verwerken en indienen.
  • Render is een methode die wordt gebruikt om de inhoud te maken. Render werkt alleen als de controller correct is ingesteld met de variabelen die moeten worden weergegeven.

32) Noem wat het doel is van RJ's in Rails?

RJs is een sjabloon die JavaScript produceert dat door de browser in een eval-blok wordt uitgevoerd als reactie op een AJAX-verzoek. Het wordt soms gebruikt om het JavaScript, het prototype en de helpers van Rails te definiëren.


33) Leg uit wat polymorfe associatie is in Ruby on Rails?

Met Polymorphic Association kan een ActiveRecord-object worden verbonden met meerdere ActiveRecord-objecten. Een perfect voorbeeld van Polymorphic Association is een sociale site waar gebruikers overal commentaar kunnen geven, of het nu gaat om video's, foto's, links, statusupdates enz. Het zou niet haalbaar zijn als je een individuele reactie moet maken, zoals photos_comments, videos_comment enzovoort. .


34) Noem wat de limieten zijn van Ruby on Rails?

Ruby on Rails is ontworpen voor het maken van een CRUD-webapplicatie met behulp van MVC. Dit kan ervoor zorgen dat Rails niet bruikbaar is voor andere programmeurs. Enkele van de functies die Rails niet ondersteunt, zijn onder meer

  • Buitenlandse sleutel in databases
  • Koppeling met meerdere databases tegelijk
  • Zeep webservices
  • Verbinding met meerdere databaseservers tegelijk

35) Noem wat het verschil is tussen het aanroepen van super() en super call?

  • Super(): Een aanroep naar super() roept de bovenliggende methode aan zonder enige argumenten, zoals vermoedelijk verwacht. Zoals altijd is het een goede zaak om expliciet te zijn in uw code.
  • super oproep: Een aanroep naar super roept de bovenliggende methode aan met dezelfde argumenten die zijn doorgegeven aan de onderliggende methode. Er zal daarom een ​​fout optreden als de argumenten die aan de onderliggende methode worden doorgegeven, niet overeenkomen met wat de ouder verwacht.

36) Uitleg over Dig, Float en Max?

  • Float-klasse wordt gebruikt wanneer de functie voortdurend verandert.
  • Dig wordt gebruikt wanneer u een float in decimale cijfers wilt weergeven.
  • Max wordt gebruikt wanneer er een grote behoefte is aan Float.

37) Leg uit hoe we Ruby reguliere expressies kunnen definiëren?

De reguliere expressie Ruby is een speciale reeks tekens waarmee u andere tekenreeksen kunt matchen of vinden. Een letterlijke reguliere expressie is een patroon tussen willekeurige scheidingstekens of schuine strepen gevolgd door %r.


38) Leg uit wat de gedefinieerde operator is?

De operator Define geeft aan of een doorgegeven expressie al dan niet is gedefinieerd. Als de expressie is gedefinieerd, retourneert deze de beschrijvingsreeks en als deze niet is gedefinieerd, retourneert deze een nulwaarde.


39) Noem de weinige kenmerken van Ruby?

  • Gratis formaat – U kunt vanuit elke regel en kolom beginnen met schrijven vanuit het programma
  • Hoofdlettergevoelig – De hoofdletters en kleine letters zijn verschillend
  • Opmerkingen – Alles gevolgd door een niet-geciteerd bericht #, tot het einde van de regel waarop het verschijnt, wordt door de tolk genegeerd
  • Scheidingstekens voor uitspraken - Meerdere uitspraken op één regel moeten worden gescheiden door puntkomma's, maar deze zijn niet vereist aan het einde van een regel.

40) Noem de soorten variabelen die beschikbaar zijn in Ruby Class?

Soorten variabelen die beschikbaar zijn in Ruby Class zijn:

  • Lokale variabelen
  • Globale variabelen
  • Klasse Variabelen
  • Instantievariabelen

41) Leg uit hoe je een blok in Ruby kunt declareren?

In Ruby staat de code in het blok altijd tussen accolades ({}). U kunt een blok aanroepen met behulp van “yield statement”.


42) Leg uit wat het verschil is tussen de put- en putc-instructie?

In tegenstelling tot de puts-instructie, die de hele string op het scherm weergeeft. De Putc-instructie kan worden gebruikt om één teken tegelijk uit te voeren.


43) Leg uit wat een klassenbibliotheek in Ruby is?

Ruby-klassebibliotheken bestaan ​​uit een verscheidenheid aan domeinen, zoals threadprogrammering, gegevenstypen, verschillende domeinen, enz. Deze klassen bieden flexibele mogelijkheden op een hoog abstractieniveau, waardoor u krachtige Ruby-scripts kunt maken die nuttig zijn bij een verscheidenheid aan problemen. domeinen. De volgende domeinen met relevante klassenbibliotheken zijn:

  • GUI-programmering
  • Netwerkprogrammering
  • CGI-programmering
  • Tekstverwerking

44) In Ruby wordt uitleg gegeven over de gedefinieerde operator?

De gedefinieerde operator geeft aan of een doorgegeven expressie al dan niet is gedefinieerd. Als de expressie niet is gedefinieerd, geeft deze null, en als de expressie wel is gedefinieerd, retourneert deze de beschrijvingsreeks.


45) Vermeld wat het verschil in reikwijdte is voor deze twee variabelen: @@naam en @naam?

Het verschil in reikwijdte van deze twee variabelen is dat:

  • @@naam is een klassevariabele
  • @name is een instantievariabele

46) Noem wat de syntaxis is voor Ruby collect Iterator?

De syntaxis voor Ruby collect Iterator-collectie = collection.collect.


47) In Ruby-code wordt vaak waargenomen dat de codeerder een verkorte vorm gebruikt voor het gebruik van een uitdrukking als reeks.map(&:methodenaam) in plaats van array.map { |element| element.methodenaam }. Hoe werkt deze truc eigenlijk?

Wanneer een parameter wordt doorgegeven met “&” ervoor. Ruby zal to_proc erop aanroepen in een poging het bruikbaar te maken als blok. Het symbool to_Proc zal dus de methode van de corresponderende naam aanroepen op wat er ook aan wordt doorgegeven. Dit helpt ons om onze stenotruc te laten werken.


48) Leg uit wat interpolatie in Ruby is?

Ruby-interpolatie is het proces waarbij een string in een letterlijke tekst wordt ingevoegd. Door een hekje (#) tussen {} haakjes openen en sluiten te plaatsen, kan men een string in de letterlijke zin interpoleren.


49) Noem wat de notatie is die wordt gebruikt voor het aanduiden van klassevariabelen in Ruby?

In Robijn,

  • Een constante moet beginnen met een hoofdletter en mag niet binnen een methode worden gedefinieerd
  • Een local moet beginnen met het onderstrepingsteken _ of met een kleine letter
  • Een globale variabele moet beginnen met het $-teken. Een niet-geïnitialiseerde globale waarde heeft de waarde ‘nul’ en dat zou ook zo moeten zijn verhogen een waarschuwing. Het kan overal in het programma worden verwezen.
  • Een klassevariabele moet beginnen met dubbele @@ en moet eerst worden geïnitialiseerd voordat deze in een methodedefinitie wordt gebruikt

50) Noem wat het verschil is tussen Procs en Blocks?

Het verschil tussen Procs en Blokken,

  • Blok is slechts het deel van de syntaxis van een methode, terwijl proc de kenmerken van een blok heeft
  • Procs zijn objecten, blokken niet
  • Er kan maximaal één blok in een argumentenlijst voorkomen
  • Alleen blok kan niet in een variabele worden opgeslagen, terwijl Proc dat wel kan

51) Noem wat het verschil is tussen een enkel aanhalingsteken en een dubbel aanhalingsteken?

Tekenreeksen met enkele aanhalingstekens verwerken geen ASCII-escape-codes en voeren geen tekenreeksinterpolatie uit.


52) Noem wat het verschil is tussen een edelsteen en een plug-in in Ruby?

  • Edelsteen: Een edelsteen is een gewone robijnrode code. Het wordt op een machine geïnstalleerd en is beschikbaar voor alle Ruby-applicaties die op die machine draaien.
  • Inpluggen: Plug-in is ook ruby-code, maar deze wordt geïnstalleerd in de applicatiemap en is alleen beschikbaar voor die specifieke applicatie.

53) Vermeld wat het verschil is tussen uitbreiden en omvatten?

De “include” maakt de methoden van de module beschikbaar voor de instantie van een klasse, terwijl “extend” deze methoden beschikbaar maakt voor de klasse zelf.

Deze interviewvragen zullen ook helpen bij je viva (oralen)

Delen

14 reacties

  1. avatar Hasanuzzaman Sumon zegt:

    Opbrengst is geen functie. Het is een robijnsleutelwoord dat wordt gebruikt voor het uitvoeren van het blok.

    1. avatar Terry Ray zegt:

      In het bijzonder zal yield de controle over de thread (hoogstwaarschijnlijk Main.thread) doorgeven aan het blok dat expliciet is doorgegeven als een parameter, dwz def my_method(&my_block) Of als alternatief had een blok impliciet kunnen worden doorgegeven, zoals

      my_class.my_method doen
      # code in dit blok wordt doorgegeven aan de aanroepmethode
      einde

  2. avatar Jorge Armando zegt:

    bij vraag #6 is er in Ruby geen “Booleaanse” klasse, en dus ook geen “Booleaanse type”. Er zijn alleen de TrueClass en FalseClass.

  3. avatar Terry Ray zegt:

    eigenlijk Thread.main … mijn slechte :)

  4. Ruby is niet geïnspireerd door Python, het is geïnspireerd door het volgende (Perl, Smalltalk, Eiffel, Ada, BASIC en Lisp)

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *