Top 53 Ruby on Rails-interviewspørgsmål og -svar (2025)

Her er Ruby on Rails-interviewspørgsmål og svar til friskere såvel som erfarne Ruby-udviklerkandidater til at få deres drømmejob.

1) Forklar, hvad er Ruby on Rails?

  • Ruby: Det er et objektorienteret programmeringssprog inspireret af PERL, Smalltalk, Eiffel, Ada, Basic og Lisp.
  • skinner: Det er en ramme, der bruges til at bygge webapplikationer

2) Forklar, hvad er klassebiblioteker i Ruby?

Klassebiblioteker i Ruby består af en række forskellige domæner, såsom datatyper, trådprogrammering, forskellige domæner osv.

Gratis PDF-download: Ruby on Rails-interviewspørgsmål og -svar


3) Nævn hvad er navnekonventionen i Rails?

  • Variabler: For at deklarere variabler er alle bogstaver små, og ord er adskilt af understregninger
  • Klasse og modul: Moduler og klasser bruger MixedCase og har ingen understregning; hvert ord starter med et stort bogstav
  • Databasetabel: Databasetabelnavnet skal have små bogstaver og understregning mellem ord, og alle tabelnavne skal være i flertalsform, f.eks. fakturaposter
  • Model: Det er repræsenteret af ubrudt MixedCase og har altid ental med tabelnavnet
  • controller: Controller-klassenavne er repræsenteret i flertalsform, således at OrdersController ville være controlleren for ordretabellen.

4) Forklar, hvad "Yield" er i Ruby on Rails?

En Ruby-metode, der modtager en kodeblok, påkalder den ved at kalde den med "Yield".


5) Forklar, hvad er ORM (Object-Relationship-Model) i Rails?

ORM eller Object Relationship Model i Rails angiver, at dine klasser er mappet til tabellen i databasen, og objekter er direkte mappet til rækkerne i tabellen.


6) Nævn hvad forskellen er mellem falsk og nul i Ruby?

I Ruby er false et objekt af FalseClass for at repræsentere en boolesk værdi, mens Nil er et objekt af NilClass, som indikerer fraværet af en værdi. Den har en object_id 4.

Ruby on Rails interviewspørgsmål
Ruby on Rails interviewspørgsmål


7) Nævn, hvad er de positive aspekter ved Rails?

Rails giver mange funktioner som

  • Meta-programmering: Rails bruger kodegenerering, men til tunge løft er den afhængig af meta-programmering. Ruby betragtes som et af de bedste sprog til meta-programmering.
  • Aktiv registrering: Det gemmer objekt til databasen gennem Active Record Framework. Rails-versionen af ​​Active Record identificerer kolonnen i et skema og binder dem automatisk til dine domæneobjekter ved hjælp af metaprogrammering
  • Stilladser: Skinner har en evne til at oprette stilladser eller midlertidig kode automatisk
  • Konvention over konfiguration: I modsætning til andre udviklingsstrukturer kræver Rails ikke meget konfiguration, hvis du følger navnekonventionen nøje
  • Tre miljøer: Rails leveres med tre standardmiljøtest, udvikling og produktion.
  • Indbygget test: Det understøtter kode kaldet harness og fixtures, der gør testcases til at skrive og udføre.

8) Forklar, hvilken rolle undermappe-app/controllere og app/hjælpere spiller?

  • App/controllere: En webanmodning fra brugeren håndteres af controlleren. Controllerunderbiblioteket er det sted, hvor Rails kigger for at finde controllerklasser
  • App/hjælpere: Hjælperens undermappe indeholder alle hjælperklasser, der bruges til at assistere visnings-, model- og controllerklasserne.

9) Nævn, hvad er forskellen mellem streng og symbol?

De opfører sig begge på samme måde, kun de adskiller sig i deres adfærd, som er modsat hinanden. Forskellen ligger i object_id, memory og process tune, når de bruges sammen. Symbol tilhører kategorien af ​​uforanderlige objekter, mens strenge betragtes som foranderlige objekter.


10) Forklar hvordan Symbol er forskelligt fra variabler?

Symbol adskiller sig fra variabler i følgende aspekter

  • Det er mere som en streng end variabel
  • I Ruby er streng foranderlig, men et symbol er uforanderlig
  • Kun én kopi af symbolet skal oprettes
  • Symboler bruges ofte som svarende til enums i Ruby

11) Forklar, hvad er Rails Active Record i Ruby on Rails?

Rails aktive record er Object/Relational Mapping (ORM) laget, der leveres med Rails. Den følger standard ORM-modellen som

  • Bordkort til klasser
  • Rækker kort til objekter
  • Kolonner er knyttet til objektattributter

12) Forklar, hvordan Rails implementerer Ajax?

Ajax-drevet webside henter websiden fra serveren, som er ny eller ændret i modsætning til andre websider, hvor du skal opdatere siden for at få de seneste oplysninger.

Rails udløser en Ajax-operation på følgende måder

  • Nogle udløser brande: Udløseren kan være en bruger, der klikker på et link eller en knap, brugerne fremkalder ændringer i dataene i feltet eller på en formular
  • Webklienten kalder serveren: En Java-script-metode, XMLHttpRequest, sender data forbundet med triggeren til en handlingshandler på serveren. Dataene kan være ID'et for et afkrydsningsfelt, hele formularen eller teksten i indtastningsfeltet
  • Serveren behandler: Server side handling handler gør noget med dataene og henter en HTML fragment til webklienten
  • Kunden modtager svar: JavaScript på klientsiden, som Rails genererer automatisk, modtager HTML-fragmentet og bruger det til at opdatere en bestemt del af den aktuelle

13) Nævn, hvordan du kan oprette en controller til emnet?

For at oprette en controller til emne kan du bruge følgende kommando

C:\ruby\library> ruby ​​script/generer controller-emne


14) Nævn, hvad er Rails Migration?

Rails Migration gør det muligt for Ruby at foretage ændringer i databaseskemaet, hvilket gør det muligt at bruge et versionskontrolsystem til at lade tingene være synkroniseret med den faktiske kode.


15) Liste over, hvad Rails Migration kan gøre?

Rails Migration kan gøre følgende ting

  • Opret tabel
  • Drop bord
  • Omdøb tabel
  • Tilføj kolonne
  • Omdøb kolonne
  • Skift kolonne
  • Fjern kolonne og så videre

16) Nævn hvad er kommandoen for at oprette en migrering?

For at oprette migreringskommando omfatter

C:\ruby\application>ruby script/generer migrationstabelnavn


17) Forklar hvornår self.up og self.down metoden bruges?

Når du migrerer til en ny version, selv.op metode bruges mens selv.ned metode bruges til at rulle mine ændringer tilbage, hvis det er nødvendigt.


18) Nævn, hvad er rollen som Rails Controller?

Rails-controlleren er det logiske centrum for applikationen. Det letter interaktionen mellem brugerne, synspunkter og modellen. Den udfører også andre aktiviteter som

  • Det er i stand til at dirigere eksterne anmodninger til interne handlinger. Det håndterer URL ekstremt godt
  • Det regulerer hjælpemoduler, som udvider mulighederne for visningsskabelonerne uden at fylde deres kode
  • Det regulerer sessioner; der giver brugerne indtryk af en løbende interaktion med vores applikationer

19) Nævn, hvad er forskellen mellem Active supports "HashWithIndifferent" og Ruby's "Hash"?

Hash klasse i Rubys kernebibliotek returnerer værdi ved at bruge en standard "= =" sammenligning på tasterne. Det betyder, at værdien gemt for en symbol nøgle kan ikke hentes ved hjælp af den tilsvarende streng. Mens HashWithIndifferentAccess behandler symboltaster og strengnøgler som ækvivalente.


20) Forklar, hvad der er Cross-Site Request Forgery (CSRF), og hvordan Rails er beskyttet mod det?

CSRF er en form for angreb, hvor hacker sender en sideanmodning på dine vegne til et andet websted, hvilket forårsager skade eller afslører dine følsomme data. For at beskytte mod CSRF-angreb skal du tilføje "beskyt_mod_forfalskning" til din Application Controller. Dette vil få Rails til at kræve et CSRF-token for at behandle anmodningen. CSRF-token gives som et skjult felt i enhver form, der er oprettet ved hjælp af Rails-formularbyggere.


21) Forklar hvad Mixin i Rails er?

Mixin i Ruby tilbyder et alternativ til flere arv, ved at bruge mixin-moduler kan importeres i andre klasse.


22) Forklar, hvordan du definerer Instance Variable, Global Variable og Class Variable i Ruby?

  • Ruby Instance variabel begynder med — @
  • Ruby Class variabler begynder med — @@
  • Ruby Globale variabler begynder med — $

23) Forklar, hvordan du kan køre Rails-applikationen uden at oprette databaser?

Du kan udføre din ansøgning ved at fjerne kommentering af linjen i environment.rb

path=> rootpath conf/environment.rb

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

24) Nævn, hvad er forskellen mellem observatørerne og tilbagekald i Ruby on Rails?

  • Sporobservatører: Observers er det samme som Callback, men det bruges, når metoden ikke er direkte forbundet med objektets livscyklus. Observatøren lever også længere, og den kan løsnes eller fastgøres til enhver tid. For eksempel visning af værdier fra en model i brugergrænsefladen og opdatering af model fra brugerinput.
  • Rails tilbagekald: Tilbagekald er metoder, som kan kaldes på bestemte tidspunkter af et objekts livscyklus, for eksempel kan det kaldes, når et objekt er valideret, oprettet, opdateret, slettet. Et tilbagekald er kortvarigt. For eksempel at køre en tråd og give et tilbagekald, der kaldes, når tråden afsluttes

25) Forklar hvad er rake i Rails?

Rake er en Ruby Make; det er et Ruby-værktøj, der erstatter Unix-værktøjet 'make', og bruger en 'Rakefile' og '.rake-filer' til at opbygge en liste over opgaver. I Rails bruges Rake til normale administrationsopgaver som at migrere databasen gennem scripts, indlæse et skema i databasen osv.


26) Forklar, hvordan du kan liste alle ruter for en applikation?

For at liste alle ruter for en applikation kan du skrive rakeruter i terminalen.


27) Forklar, hvad er sweeper i Rails?

Fejemaskiner er ansvarlige for at udløbe eller afslutte caches, når modelobjektet ændres.


28) Nævn loggen, der skal ses for at rapportere fejl i Ruby Rails?

Rails vil rapportere fejl fra Apache i loggen/Apache.log og fejl fra Ruby-koden i log/development.log.


29) Forklar, hvad er forskellen mellem dynamiske og statiske stilladser?

Dynamisk stillads Statisk stillads
  • Det opretter automatisk hele indholdet og brugergrænsefladen under kørsel
  • Det gør det muligt at generere nye, slette, redigere metoder til brug i applikationen
  • Det behøver ikke en database for at blive synkroniseret
  • Det kræver manuel indtastning i kommandoen for at oprette dataene med deres felter
  • Det kræver ikke, at en sådan generation finder sted
  • Det kræver, at databasen migreres

30) Nævn, hvad er funktionen af ​​affaldsindsamling i Ruby on Rails?

Funktionerne af affaldsopsamling i Ruby on Rails omfatter

  • Det gør det muligt at fjerne de pointerværdier, der er tilbage, når programmet afsluttes
  • Det frigør programmøren fra at spore objektet, der oprettes dynamisk på runtime
  • Det giver fordelen ved at fjerne de utilgængelige objekter fra hukommelsen og tillader andre processer at bruge hukommelsen

31) Nævn hvad er forskellen mellem redirect og render i Ruby on Rails?

  • Omdirigering er en metode, der bruges til at udstede fejlmeddelelsen, hvis siden ikke er udstedt eller fundet til browseren. Det fortæller browseren at behandle og udstede en ny anmodning.
  • Render er en metode, der bruges til at lave indholdet. Render fungerer kun, når controlleren sættes korrekt op med de variabler, der skal gengives.

32) Nævn hvad er formålet med RJ'er i skinner?

RJs er en skabelon, der producerer JavaScript, som køres i en eval-blok af browseren som svar på en AJAX-anmodning. Det bruges nogle gange til at definere JavaScript, prototype og hjælpere leveret af Rails.


33) Forklar, hvad er Polymorphic Association i Ruby on Rails?

Polymorphic Association tillader, at et ActiveRecord-objekt forbindes med flere ActiveRecord-objekter. Et perfekt eksempel på Polymorphic Association er en social side, hvor brugere kan kommentere hvor som helst, uanset om det er videoer, fotos, link, statusopdateringer osv. Det ville ikke være muligt, hvis du skal oprette en individuel kommentar som photos_comments, videos_comment og så videre .


34) Nævn hvad er grænserne for Ruby on Rails?

Ruby on Rails er designet til at skabe en CRUD-webapplikation ved hjælp af MVC. Dette kan gøre Rails ikke nyttigt for andre programmører. Nogle af de funktioner, som Rails ikke understøtter, inkluderer

  • Fremmednøgle i databaser
  • Link til flere databaser på én gang
  • Sæbe webtjenester
  • Tilslutning til flere databaseservere på én gang

35) Nævn hvad er forskellen mellem at kalde super() og superkald?

  • super(): Et kald til super() påberåber den overordnede metode uden nogen argumenter, som formodentlig forventet. Som altid er det en god ting at være eksplicit i din kode.
  • super opkald: Et kald til super kalder den overordnede metode med de samme argumenter, som blev videregivet til den underordnede metode. Der vil derfor opstå en fejl, hvis de argumenter, der sendes til den underordnede metode, ikke stemmer overens med det, som forælderen forventer.

36) Forklar om Dig, Float og Max?

  • Float klasse bruges, når funktionen ændres konstant.
  • Dig bruges, når du vil repræsentere en flyder i decimaltal.
  • Max bruges, når der er et stort behov for Float.

37) Forklar hvordan vi kan definere Ruby regulære udtryk?

Ruby regulære udtryk er en speciel sekvens af tegn, der hjælper dig med at matche eller finde andre strenge. Et regulært udtryk er et mønster mellem vilkårlige afgrænsninger eller skråstreger efterfulgt af %r.


38) Forklar hvad er den definerede operator?

Define-operator angiver, om et bestået udtryk er defineret eller ej. Hvis udtrykket er defineret, returnerer det beskrivelsesstrengen, og hvis det ikke er defineret, returnerer det en nulværdi.


39) Liste over de få funktioner i Ruby?

  • Frit format – Du kan begynde at skrive fra program fra enhver linje og spalte
  • Der skelnes mellem store og små bogstaver – de store og små bogstaver er forskellige
  • Kommentarer – Alt efterfulgt af et uciteret #, til slutningen af ​​linjen, hvor den vises, ignoreres af tolken
  • Udsagnsafgrænsere - Flere udsagn på én linje skal adskilles af semikolon, men de er ikke påkrævet i slutningen af ​​en linje.

40) Nævn de typer variabler, der er tilgængelige i Ruby Class?

Typer af variabler tilgængelige i Ruby Class er,

  • Lokale variabler
  • Globale variabler
  • Klassevariabler
  • Forekomstvariabler

41) Forklar, hvordan kan du erklære en blokering i Ruby?

I Ruby er koden i blokken altid omgivet af klammer ({}). Du kan påberåbe en blokering ved at bruge "udbytteerklæring".


42) Forklar hvad der er forskellen mellem put og putc statement?

I modsætning til puts-sætningen, som udsender hele strengen på skærmen. Putc-sætningen kan bruges til at udskrive et tegn ad gangen.


43) Forklar, hvad er et klassebibliotek i Ruby?

Ruby-klassebiblioteker består af en række forskellige domæner, såsom trådprogrammering, datatyper, forskellige domæner osv. Disse klasser giver fleksible muligheder på et højt abstraktionsniveau, hvilket giver dig muligheden for at skabe kraftfulde Ruby-scripts, der er nyttige i en række forskellige problemer domæner. Følgende domæner, der har relevante klassebiblioteker, er,

  • GUI programmering
  • Netværksprogrammering
  • CGI programmering
  • Tekstbehandling

44) I Ruby forklarer den om den definerede operator?

Den definerede operator fortæller, om et bestået udtryk er defineret eller ej. Hvis udtrykket ikke er defineret, giver det null, og hvis udtrykket er defineret returnerer det beskrivelsesstrengen.


45) Nævn, hvad er forskellen i omfanget for disse to variable: @@navn og @navn?

Forskellen i omfanget for disse to variabler er:

  • @@navn er en klassevariabel
  • @navn er en instansvariabel

46) Nævn hvad er syntaksen for Ruby collect Iterator?

Syntaksen for Ruby collect Iterator collection = collection.collect.


47) I Ruby-kode observeres det ofte, at koder bruger en kort håndform til at bruge et udtryk som matrix.map(&:metode_navn) i stedet for array.map { |element| element.metodenavn }. Hvordan fungerer dette trick egentlig?

Når en parameter sendes med "&" foran den. Ruby vil kalde to_proc på det i et forsøg på at gøre det brugbart som en blok. Så symbol to_Proc vil påberåbe metoden for det tilsvarende navn på hvad der er videregivet til det. Dermed hjælper vores stenografi-trick til at fungere.


48) Forklar, hvad er interpolation i Ruby?

Ruby Interpolation er processen med at indsætte en streng i en bogstavelig. Ved at placere en Hash (#) inden for {} åbne og lukke parenteser, kan man interpolere en streng til den bogstavelige.


49) Nævn hvad er notationen brugt til at betegne klassevariable i Ruby?

I Ruby,

  • En konstant skal begynde med et stort bogstav, og det bør ikke defineres i en metode
  • En lokal skal begynde med _ understregningstegnet eller et lille bogstav
  • En global variabel skal begynde med tegnet $. En uinitialiseret global har værdien "nul", og det burde den rejse en advarsel. Det kan henvises overalt i programmet.
  • En klassevariabel skal begynde med dobbelt @@ og skal først initialiseres, før den bruges i en metodedefinition

50) Nævn, hvad er forskellen mellem Procs og Blocks?

Forskellen mellem Procs og Blocks,

  • Blok er kun en del af syntaksen for en metode, mens proc har karakteristika af en blok
  • Procs er objekter, blokke er ikke
  • Der kan højst forekomme én blok i en argumentliste
  • Kun blok kan ikke gemmes i en variabel, mens Proc kan

51) Nævn, hvad er forskellen mellem et enkelt citat og et dobbelt citat?

En strenge med enkelt citater behandler ikke ASCII-escape-koder, og de udfører ikke strenginterpolation.


52) Nævn hvad er forskellen mellem en perle og et plugin i Ruby?

  • Perle: En perle er en bare rubinkode. Det er installeret på en maskine, og det er tilgængeligt for alle ruby-applikationer, der kører på den maskine.
  • Plugin: Plugin er også rubinkode, men den er installeret i applikationsmappen og kun tilgængelig for den specifikke applikation.

53) Nævn hvad er forskellen udvide og inkludere?

"Inkluder" gør modulets metoder tilgængelige for instansen af ​​en klasse, mens "extend" gør disse metoder tilgængelige for klassen selv.

Disse interviewspørgsmål vil også hjælpe i din viva(orals)

Del

14 Kommentarer

  1. Avatar Hasanuzzaman Sumon siger:

    Udbytte er ikke funktion. Det er ruby ​​nøgleord, der bruges til at udføre blok.

    1. Avatar Terry Ray siger:

      Specifikt vil yield videregive kontrollen af ​​tråden (Main.thread højst sandsynligt) til blokken, der enten blev sendt eksplicit ind som en parameter, dvs. def my_method(&my_block) Eller alternativt kunne en blok være blevet videregivet implicit som f.eks.

      min_klasse.min_metode gør
      # kode i denne blok vil blive givet til inde i kaldemetoden
      ende

  2. meget flot... fortsæt

  3. Fantastisk indhold!

  4. Jorge Armando siger:

    på spørgsmål #6, i Ruby, er der ingen "Boolean" klasse, derfor ingen "Boolean type". Der er kun TrueClass og FalseClass.

    1. Alex Silverman Alex Silverman siger:

      Den er opdateret.

  5. Avatar Terry Ray siger:

    faktisk Thread.main ... min dårlige :)

  6. Ruby er ikke inspireret af Python, den er inspireret af følgende (Perl, Smalltalk, Eiffel, Ada, BASIC og Lisp)

    1. Alex Silverman Alex Silverman siger:

      Den er opdateret.

  7. Flot glimt af rubin og skinner

  8. 6) nil.object_id er lig med 8

Giv en kommentar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *