40+ Vanliga frågor och svar på Ruby on Rails-intervjuer [2023]

Ruby on Rails är förmodligen den mest kända Ruby-ramen. Dess enkelhet att använda, MVC-arkitektur, community och skalbarhet är anledningarna till dess popularitet.

Några av de stora namnen som använder Ruby on Rails är GitHub, Dribble, Shopify, Airbnb, Etsy, Kickstarter, Twitch och Zendesk, för att nämna några.

Om du är en mellanliggande eller skicklig Ruby on Rails-ingenjör är det ett smart drag att förstå karaktären på frågor du kommer att hitta i din nästa intervju.

Intervjuer kan vara skrämmande om du är oförberedd. Men om du är väl förberedd kommer ditt självförtroende att skjuta i höjden och du kan ha turen att få en ny roll i ditt drömföretag.

Det här är några vanliga Ruby on Rails-intervjufrågor och deras svar.

Innehållsförteckning

Vad är Ruby on Rails?

Ruby är ett objektorienterat programmeringsspråk med en enkel syntax.

Ruby on Rails är ett Ruby-ramverk som utvecklare använder för att skapa webbapplikationer.

Diskutera fördelarna med Ruby on Rails

  • Mindre kod än andra språk: Du kan uppnå mycket med bara några rader kod med Rails.
  • Omfattande bibliotek och ädelstenar: Det finns massor av bibliotek och ädelstenar för att förbättra funktionaliteten hos en Ruby on Rails-app.
  • Lätt att lära sig: Ruby on Rails kod ser ut som vanlig engelska.
  • En stor gemenskap.

Diskutera gränserna för Ruby on Rails

  • Jämfört med Django och Node.js är Rails körhastighet och prestanda låg.
  • Begränsad dokumentation för några av dess ädelstenar.
  • Ruby on Rails är opinionsbildad, vilket begränsar en utvecklares flexibilitet.

Vad är en Rails controller?

Det är det logiska centrumet i en Ruby on Rails-applikation. Rails controller hanterar, koordinerar och övervakar all interaktion mellan användare, modeller och vyer.

Vad är Rails Active Record?

Active Record är en objektrelationsmappningsteknik (ORM). Detta lager av Ruby-kod körs mellan kodlogiken och din databas. När du har skrivit Ruby-kod kör du ”migrationer” för att göra ändringar i din databas.

Vad är MVC och hur fungerar det?

Modell-view-controller (MVC) arkitektoniska mönster skiljer affärslogiken från ingångs- och presentationslogiken.

  • Modell: hanterar all datalogik i en Rails-app.
  • Visa: detta är en del av applikationen som användarna ser.
  • Controller: är som en bro eller mäklare som låter modellen och vyn kommunicera.

Vad är en actioncontroller i Ruby on Rails?

Action Controller är C:et i MVC-mönstret. Åtgärdskontrollern tar emot inkommande förfrågningar, förstår förfrågan och producerar lämplig utdata.

Vad är rake i Rails?

Rake är en task runner för Ruby on Rails och Ruby-applikationer. Rails har fördefinierade Rake-uppgifter för att utföra tester, köra migreringar och skapa databaser.

Vad är avkastningen i Ruby on Rails?

Yield är ett nyckelord som används i metoder för att anropa ett block. Det finns ingen begränsning för antalet argument som Yield kan skicka till blocket. Block, i det här fallet, är metoder utan namn som kan användas som extra argument till andra metoder.

Vad är Garbage Collection Ruby on Rails?

Garbage Collection är processen att kontrollera minne som används av datorprogram. Ruby on Rails håller reda på vilka objekt som används av programmet snarare än programmeraren. Utvecklarna kan alltså fokusera på logik och konvention istället för att oroa sig för minnesallokering.

Vilken roll spelar Garbage Collection i Rails-appen?

Det frigör minne på din maskin för andra processer att utföra. Garbage collection uppnår detta genom att ta bort otillgängliga objekt som ett program lämnar efter körning.

Vad är en tillgångspipeline?

En Asset Pipeline i Ruby on Rails tillhandahåller ett ramverk som minimerar och sammanfogar CSS- och JavaScript-tillgångar. Detta ramverk låter alla tillgångar i din Rails-app automatiskt kombineras med tillgångar från andra pärlor.

Gör skillnad på dynamiska och statiska ställningar

Ställningar är processen för att generera stora delar av Rails-applikationen.

Statisk ställning anger uttryckligen ett kommando som producerar de nödvändiga uppgifterna i respektive fält. För att slutföra statiska ställningar måste du köra migrering.

Dynamiska ställningar genererar innehåll och användargränssnitt under körning. Denna process kan användas för att skapa, ändra och ta bort åtgärder i en Rails-app.

Vad är ett klassbibliotek?

Ett klassbibliotek består av domäner i Ruby on Rails, och trådprogrammering och datatyper är exempel på sådana domäner. Ett klassbibliotek tillåter en utvecklare att skapa kodabstraktion och därmed använda samma logik inom olika element i en app.

Beskriv Polymorphic Association in Rails

Polymorphic Association är en typ av Active Record Association. Polymorfism innebär att ett föremål kan ha många former. I Rails-sammanhang låter Polymorphic Association dig definiera en enskild modell som kan associeras med eller tillhöra andra modeller utan att skriva en repeteringskod.

Vad är stränginterpolation i Ruby?

Stränginterpolation lägger till platshållare som refererar till andra värden i ett strängobjekt. Användningen av additionsoperatorn är det enklaste sättet att interpolera värden.

Tänk på det här exemplet:

name = "Titus"

puts "Hello " + name

Utgången blir;

Hej Titus

Vad är Object Relationship Model (ORM)?

En ORM är en brygga mellan databaser och objektorienterade program. En objektrelation, i Rails, indikerar när klasser mappas till en tabell i din databas.

Förklara Rails migration

Migrering hjälper utvecklare att göra ändringar i ett databasschema bekvämt. Utvecklare kan därmed hantera utrullning och återställning i databasschemat i en kontrollerad miljö. Detta tillvägagångssätt hindrar dig från att hantera enskilda SQL-skript för att definiera dina ändringar.

Förklara namnkonventionen i Rails

  • Klass och modul: använd MixedCase men har inget understreck. Namn i klasser och moduler börjar med en stor bokstav.
  • Databastabell: namnet på en databastabell ska vara i plural och orm-case.
  • Variabler: bokstäver som deklarerar variabler ska vara i gemener och snake_case med ett understreck som skiljer dem åt.
  • Modell: använd MixedCase för att ange en modell och se till att namnet är i singularis.
  • Controllers: Controllers namn är pluraliserade.

Vad är skillnaden mellan sträng och text i Rails?

:string är lämplig när du vill lagra kort text med upp till 255 tecken. Du kan använda den med namn, användarnamn, e-post, lösenord och titlar.

:text passar långa beskrivningar. Perfekta exempel på kommentarer på ett blogginlägg eller en butiksbeskrivning.

class CreatePosts < ActiveRecord::Migration

   def self.up

      create_table:posts do |t|

         t.string:description

         t.text :content 

      end

   end

Förklara cross-site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) är en onlineattack där angripare fångar autentiserade användare för att utföra vissa åtgärder för deras räkning.

Rails kräver att utvecklare lägger till ”protect_from_forgery” till ApplicationController för att undvika CSRF-attacker. Appen kommer alltid att kräva en CSRF-token för att autentisera en användare.

Förklara vad mixin är i Rails

En mixin erbjuder ett kontrollerat sätt att lägga till funktioner till en klass. Många olika mixins utgör en klass. Mixins utrotar behovet av att ha flera arv.

Vad är användningen av belastning och krav i Ruby?

require( ) används för att importera bibliotek/ädelstenar

load() används för att exekvera ett kodblock

Vad är skillnaden mellan callbacks och observatörer i Ruby on Rails

Rälsobservatörer används när en metod inte är direkt relaterad till ett objekts livscykel. Deras livscykler är stora och de kan fästas eller tas bort när som helst.

Återuppringningar kan endast anropas vid specifika tillfällen i ett objekts livscykel. Exempel på sådana instanser är uppdateringar, skapande och validering. Återuppringningar är endast aktiva under korta perioder.

Vad är selar och fixturer i Ruby?

Fixturer hänvisar till ett sätt att organisera data som du vill testa. De kan skapas i filer som slutar med filtillägget .yml.

Harnesses är miljön eller testlöpare för att köra Rails-tester. Fixturer sätts upp i Selar.

Vad är skillnaden mellan förlänga och inkludera?

”Inkludera” lägger till en instansmetod till en klass. Koden kommer alltså att vara tillgänglig via klassmetoder.

”Extend” lägger till instansmetoder definierade i modulen till den utökade klassen.

Är juveler och plugins samma sak i Ruby?

Gems är paketerade Ruby-applikationer som måste installeras. De är generella och är inte beroende av Rails för funktionalitet.

Plugins i Ruby on Rails distribueras tillsammans med din Rails-applikation. De modifierar eller lägger till kärnfunktionaliteten hos Rails.

Vad är järnvägsobservatörer?

Rails observer erbjuder en mekanism där ett objekt informerar de andra när dess tillstånd ändras. Det är tillämpligt i en en-till-många-relation så att när ett objekt ändras, informeras alla beroende objekt och ändras automatiskt.

Vilket kommando används för att skapa en migrering?

bin/rails db:migrate

Visa hur man definierar klass-, instans- och globala variabler i Ruby

  • Klassvariabler: Kan användas var som helst inom sin klass. Klassens ättlingar kan också komma åt dem. De börjar med @@.
  • Instansvariabler: Används i det lokala omfånget som är specifikt för det skapade objektets instanser. De kan variera från ett objekt till ett annat. De börjar med @.
  • Globala variabler: Tillgänglig var som helst i programmet. Börjar med $.

Vilken roll spelar rakefile tillgänglig i demokatalogen i Ruby?

Rakefile hjälper till med testning och paketering av Rails-kod. Filen definierar de uppgifter som utför tester eller demonstrerar programmets funktioner.

Vad är en sopmaskin i Rails?

Sweepers fungerar som terminatorer i cachelagring. De fungerar som halvfilter och halvobservatörer och implementerar callbacks för de två rollerna. ”expire_cache” hittar alla cachefragment som måste förfalla och rensar dem,

Vad är filter?

Dessa är metoder ”före” eller ”efter” en kontrollants åtgärd utförs. Sådana metoder ärvs och kommer att köras med varje begäran som din app tar emot så länge du har ställt in dem i ApplicationController.

Gör skillnad på omdirigering och rendering i Rails

Rendera: används för att rendera en mall och sedan skicka den till klienten som svar på begäran. Denna mall genererar sedan sidan som webbläsaren kommer att visa.

Omdirigering: skickar en ny HTTP-begäran till en annan URL. Denna åtgärd omdirigerar klienten till en annan styrenhet eller åtgärd. Den här metoden är praktisk när du vill ändra webbadressen som klienterna ser i webbläsaren.

Gör skillnad på att anropa super() och superanrop

  • Super: skickar ett meddelande till det aktuella objektets förälder för att anropa alla argument för den anropade metoden.
  • super(): skickar inga argument till föräldern.

Vad är skillnaden mellan Procs och Blocks?

  • Block: En bit kod omgiven av gör/slut-satser eller hängslen. De skapas och exekveras varje gång metoden anropas.
  • Procs: Kodblock bundna till en uppsättning lokala variabler. Denna kod kan anropas i olika sammanhang och har fortfarande tillgång till variablerna.

Vad är skillnaden mellan puts och print statements?

Vi använder puts när vi vill skriva ut något på skärmen. Till exempel,

puts “Hello World!!!”

Prints Hello World!!! på skärmen

Vi använder print när vi inte vill lägga till en ny rad på konsolen.

print “Hello World!!!” 

Utgångar Hello World!!!, men en ny linje kommer inte att läggas till konsolen.

Vad är dynamiska sökare?

Dynamiska hittare tillåter utvecklare att söka efter poster i sin databas utan att använda råa SQL-frågor. De använder sökordet find_by_, som sedan följs attributet för att söka.

Förklara hur Rail implementerar ajax

  • En utlösare, som att skicka ett formulär eller klicka på en knapp, initieras.
  • JavaScript-metoden skickar triggerdata till en hanterare på servern.
  • Hanteraren på serversidan arbetar med data och skickar HTML till webbklienten.
  • JavaScript-hanteraren på klientsidan tar emot HTML-innehåll och uppdaterar den aktuella sidan.

Förklara Dig, Float och Max

  • Med Dig-metoden kan du extrahera värden från kapslade hashar eller arrayer.
  • Float är en Ruby-datatyp som representerar reella tal med flyttalsprecision.
  • Max är en metod som kan användas med arrayer och hash. Den returnerar det maximala värdet i en samling objekt/värden.
array = [2, 9, 4, 7, 3]

maximum = array.max

Konsolen kommer att mata ut 9 eftersom det är det största antalet.

Slutsats

Ovan är några frågor som du förmodligen kommer att hitta i din nästa Ruby on Rails. Om du är en allsidig mjukvaruingenjör, kolla dessa Node.js-intervjufrågor. Se till att du förstår arbetsbeskrivningen för en Rails-ingenjör innan du går på din nästa intervju.