53 parimat Ruby on Rails'i intervjuu küsimust ja vastust (2025)

Siin on Ruby on Railsi intervjuu küsimused ja vastused nii värsketele kui ka kogenud Ruby arendajakandidaatidele, et saada oma unistuste töökoht.

1) Selgitage, mis on Ruby on Rails?

  • Rubiin: See on objektorienteeritud programmeerimiskeel, mis on inspireeritud PERL-ist, Smalltalkist, Eiffelist, Adast, Basicust ja Lispist.
  • Rööpad: See on raamistik, mida kasutatakse veebirakenduste loomiseks

2) Selgitage, mis on Ruby klassiteegid?

Ruby klassiteegid koosnevad mitmesugustest domeenidest, nagu andmetüübid, lõimede programmeerimine, erinevad domeenid jne.

Tasuta PDF-vormingus allalaadimine: Ruby on Rails intervjuu küsimused ja vastused


3) Mainige, mis on Railsis nimede andmise tava?

  • Muutujad: Muutujate deklareerimiseks on kõik tähed väiketähtedega ja sõnad on eraldatud alakriipsuga
  • Klass ja moodul: Moodulid ja klassid kasutavad MixedCase'i ja neil puudub allkriips. iga sõna algab suure tähega
  • Andmebaasi tabel: Andmebaasi tabeli nimes peavad olema väikesed tähed ja sõnade vahel allkriips ning kõik tabelinimed peaksid olema mitmuses, näiteks arve_üksused
  • Mudel: Seda tähistab katkematu MixedCase ja see on alati koos tabeli nimega ainsuses
  • kontroller: Kontrolleri klasside nimed on esitatud mitmuses, nii et OrdersController oleks tellimuste tabeli kontroller.

4) Selgitage, mis on Ruby on Railsis "Tootlus"?

Ruby-meetod, mis võtab vastu koodiploki, kutsub seda välja, kutsudes seda "saagisega".


5) Selgitage, mis on ORM (Object-Relationship-Model) rööbastes?

ORM või objektide seoste mudel rööbastes näitavad, et teie klassid on vastendatud andmebaasi tabeliga ja objektid on vastendatud otse tabeli ridadele.


6) Mainige, mis vahe on rubiini vale ja nulli vahel?

Ruby puhul on false FalseClassi objekt, mis tähistab tõeväärtust, samas kui Nil on NilClassi objekt, mis näitab väärtuse puudumist. Sellel on objekti_id 4.

Ruby on Rails intervjuu küsimused
Ruby on Rails intervjuu küsimused


7) Nimeta, millised on Raili positiivsed küljed?

Rööpad pakuvad palju funktsioone, nagu

  • Metaprogrammeerimine: Rails kasutab koodi genereerimist, kuid raskete tõstmiste puhul tugineb see metaprogrammeerimisele. Rubyt peetakse üheks parimaks metaprogrammeerimise keeleks.
  • Aktiivne kirje: See salvestab objekti Active Record Frameworki kaudu andmebaasi. Active Record Railsi versioon tuvastab veeru skeemis ja seob need automaatselt teie domeeniobjektidega metaprogrammeerimise abil
  • Tellingud: Rööbastel on võimalus luua automaatselt tellinguid või ajutist koodi
  • Konfiguratsiooni kokkulepe: Erinevalt teistest arendusraamistikest ei vaja Rails palju konfigureerimist, kui järgite hoolikalt nimetamistavasid
  • Kolm keskkonda: Railsil on kolm vaikekeskkonna testimist, arendust ja tootmist.
  • Sisseehitatud testimine: See toetab koodi nimega rakmed ja kinnitused, mis muudavad testjuhtumite kirjutamiseks ja täitmiseks.

8) Selgitage, milline on alamkataloogi rakenduste/kontrollerite ja rakenduste/abistajate roll?

  • Rakendus/kontrollerid: kasutaja veebipäringut käsitleb kontroller. Kontrolleri alamkataloog on see, kust Rails otsib kontrolleriklasse
  • Rakendus/abilised: abistaja alamkataloog sisaldab kõiki abistavaid klasse, mida kasutatakse vaate, mudeli ja kontrolleri klasside abistamiseks.

9) Mainige, mis vahe on stringil ja sümbolil?

Nad mõlemad tegutsevad ühtemoodi, kuid erinevad üksteisele vastupidise käitumise poolest. Erinevus seisneb objekti ID, mälu ja protsessi häälestuses, kui neid kasutatakse koos. Sümbol kuulub muutumatute objektide kategooriasse, samas kui stringe peetakse muutuvateks objektideks.


10) Selgitage, kuidas sümbol erineb muutujatest?

Sümbol erineb muutujatest järgmiste aspektide poolest

  • See sarnaneb rohkem stringile kui muutujale
  • Ruby keeles on string muutuv, kuid sümbol on muutumatu
  • Sümbolist tuleb luua ainult üks koopia
  • Sümboleid kasutatakse sageli rubiini enumite vastamiseks

11) Selgitage, mis on Ruby on Railsis Rails Active Record?

Rööbaste aktiivne kirje on Rööbastega kaasas olev objekti/relatsioonikaardistamise (ORM) kiht. See järgib standardset ORM-i mudelit nagu

  • Tabelikaart klassidele
  • Ridade kaardistamine objektidega
  • Veerud vastendatakse objekti atribuutidega

12) Selgitage, kuidas Rails rakendab Ajax?

Ajaxi toega veebileht hangib serverist veebilehe, mis on uus või muudetud erinevalt teistest veebilehtedest, kus peate värskeima teabe saamiseks lehte värskendama.

Rööpad käivitavad Ajaxi operatsiooni järgmistel viisidel

  • Mõned vallandavad tulekahjud: Päästikuks võib olla kasutaja, kes klõpsab lingil või nupul, kasutajad, kes kutsuvad esile andmetes muudatusi väljal või vormil
  • Veebiklient helistab serverile: Java-skripti meetod XMLHttpRequest saadab päästikuga seotud andmed serveri toimingukäsitlejale. Andmed võivad olla kasti ID, kogu vorm või tekst sisestusväljal
  • Server töötleb: Serveripoolne toimingute töötleja teeb andmetega midagi ja hangib alla HTML fragment veebikliendile
  • Klient saab vastuse: Kliendipoolne JavaScript, mille Rails genereerib automaatselt, võtab vastu HTML-i fragmendi ja kasutab seda praeguse faili teatud osa värskendamiseks.

13) Mainige, kuidas saate teema jaoks kontrollerit luua?

Teema jaoks kontrolleri loomiseks saate kasutada järgmist käsku

C:\ruby\library> ruby ​​skript/genereeri kontrolleri teema


14) Mainige, mis on Rails Migration?

Rails Migration võimaldab Rubyl teha muudatusi andmebaasi skeemis, võimaldades kasutada versioonikontrollisüsteemi, et jätta asjad tegeliku koodiga sünkroonituks.


15) Loetlege, mida saab Rails Migration teha?

Rails Migration saab teha järgmisi asju

  • Loo tabel
  • Kukkumislaud
  • Nimeta tabel ümber
  • Lisage veerg
  • Nimeta veerg ümber
  • Muuda veergu
  • Eemalda veerg ja nii edasi

16) Nimetage, mis on migratsiooni loomise käsk?

Migratsiooni loomiseks sisaldab käsk

C:\ruby\application>ruby skript/genereeri migratsioonitabeli_nimi


17) Selgitage, millal kasutatakse self.up ja self.down meetodit?

Uuele versioonile üleminekul ise üles meetodit kasutatakse samal ajal ise.alla meetodit kasutatakse vajaduse korral minu muudatuste tagasipööramiseks.


18) Mainige, mis on rööbaste kontrolleri roll?

Rails-kontroller on rakenduse loogiline keskus. See hõlbustab suhtlust kasutajate, vaadete ja mudeli vahel. Samuti teostab see muid tegevusi, nagu

  • See on võimeline suunama väliseid päringuid sisemistele toimingutele. See käsitleb URL-i väga hästi
  • See reguleerib abimooduleid, mis laiendavad vaatemallide võimalusi ilma nende koodi hulgi suurendamata
  • See reguleerib seansse; mis jätab kasutajatele mulje pidevast suhtlusest meie rakendustega

19) Mainige, mis vahe on aktiivse toe "HashWithIndifferent" ja Ruby "Hash" vahel?

. Hash klass Ruby põhiteegis tagastab väärtuse, kasutades standardit "= =" klahvide võrdlus. See tähendab, et a jaoks salvestatud väärtus sümbol võtit ei saa samaväärse stringi abil alla laadida. Samal ajal kui HashWithIndifferentAccess käsitleb sümboli- ja stringklahve samaväärsetena.


20) Selgitage, mis on saidiülene päringu võltsimine (CSRF) ja kuidas on Rails selle eest kaitstud?

CSRF on ründevorm, kus häkker saadab teie nimel lehepäringu teisele veebisaidile, põhjustades kahju või paljastades teie tundlikke andmeid. CSRF-i rünnakute eest kaitsmiseks peate lisama "kaitse_võltsimise eest" oma Application Controller. Selle tõttu nõuab Rails päringu töötlemiseks CSRF-i luba. CSRF-i luba antakse peidetud väljana igal vormil, mis on loodud Rails vormikoostajate abil.


21) Selgitage, mis on Mixin in Rails?

Mixin in Ruby pakub alternatiivi mitmele pärandile, kasutades mixin mooduleid saab importida teise klassi sisse.


22) Selgitage, kuidas määratlete Ruby's eksemplari muutuja, globaalse muutuja ja klassi muutuja?

  • Ruby Instance muutuja algab — @
  • Rubiiniklassi muutujad algavad tähega - @@
  • Ruby globaalsed muutujad algavad sõnadega - $

23) Selgitage, kuidas saate rakendust Rails käivitada ilma andmebaase loomata?

Rakenduse saate käivitada, eemaldades keskkonna.rb rea kommentaarid

path=> rootpath conf/environment.rb

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

24) Mainige, mis vahe on vaatlejatel ja tagasihelistamisel Ruby on Railsis?

  • Rööbaste vaatlejad: Vaatlejad on sama, mis tagasihelistamine, kuid seda kasutatakse juhul, kui meetod pole objekti elutsükliga otseselt seotud. Samuti elab vaatleja kauem ja seda saab igal ajal lahti või külge kinnitada. Näiteks mudeli väärtuste kuvamine kasutajaliideses ja mudeli värskendamine kasutaja sisendi põhjal.
  • Rööbaste tagasihelistamine: Tagasihelistamised on meetodid, mida saab välja kutsuda objekti elutsükli teatud hetkedel, näiteks objekti valideerimisel, loomisel, värskendamisel, kustutamisel. Tagasikutse on lühiajaline. Näiteks lõime käivitamine ja tagasihelistamine, mis kutsutakse lõime lõppemisel

25) Selgitage, mis on rake in Rails?

Rake on Ruby Mark; see on Ruby utiliit, mis asendab Unixi utiliidi "make" ja kasutab "Rakefile" ja ".rake faile" ülesannete loendi koostamiseks. Railsis kasutatakse Rake'i tavalisteks haldustoiminguteks, nagu andmebaasi migreerimine skriptide kaudu, skeemi laadimine andmebaasi jne.


26) Selgitage, kuidas saate kõik rakenduse marsruudid loetleda?

Rakenduse kõigi marsruutide loetlemiseks võite terminali kirjutada rake marsruudid.


27) Selgitage, mis on Railsis pühkija?

Pühkijad vastutavad vahemälu aegumise või lõpetamise eest, kui mudeliobjekt muutub.


28) Kas mainida logi, mida tuleb näha Ruby Railsi vigadest teatamiseks?

Rails teatab Apache'i vigadest failis log/Apache.log ja Ruby koodi vigadest failis log/development.log.


29) Selgitage, mis vahe on dünaamilistel ja staatilistel tellingutel?

Dünaamilised tellingud Staatilised tellingud
  • See loob käitamise ajal automaatselt kogu sisu ja kasutajaliidese
  • See võimaldab genereerida uusi, kustutada, redigeerida meetodeid rakenduses kasutamiseks
  • See ei vaja sünkroonimiseks andmebaasi
  • Nende väljadega andmete loomiseks on vaja käsu käsitsi sisestamist
  • See ei nõua sellise genereerimise toimumist
  • See nõuab andmebaasi migreerimist

30) Nimetage, mis on Ruby on Railsis prügikorjamise funktsioon?

Ruby on Rails prügikoristusfunktsioonid hõlmavad

  • See võimaldab eemaldada kursori väärtused, mis programmi täitmise lõppedes maha jäävad
  • See vabastab programmeerija käitusajal dünaamiliselt loodava objekti jälgimisest
  • Selle eeliseks on kättesaamatud objektide mälust eemaldamine ja see võimaldab teistel protsessidel mälu kasutada

31) Mainige, mis vahe on ümbersuunamisel ja renderdamisel Ruby on Railsis?

  • Ümbersuunamine on meetod, mida kasutatakse veateate väljastamiseks juhul, kui lehte ei väljastata või brauseris ei leita. See käsib brauseril töödelda ja esitada uus taotlus.
  • Renderdus on meetod, mida kasutatakse sisu loomiseks. Renderdamine töötab ainult siis, kui kontroller on renderdamist vajavate muutujatega õigesti seadistatud.

32) Mainige, mis on RJ-de eesmärk Railsis?

RJs on mall, mis toodab JavaScripti, mida brauser käivitab vastusena AJAX-i päringule eval-plokis. Mõnikord kasutatakse seda Railsi pakutava JavaScripti, prototüübi ja abistajate määratlemiseks.


33) Selgitage, mis on polümorfne assotsiatsioon keeles Ruby on Rails?

Polümorfne seos võimaldab ActiveRecord-objekti ühendada mitme ActiveRecord-objektiga. Polümorfse assotsiatsiooni suurepärane näide on sotsiaalne sait, kus kasutajad saavad kommenteerida kõikjal, olgu see siis videod, fotod, lingid, olekuvärskendused jne. See poleks teostatav, kui peate looma individuaalse kommentaari, näiteks photos_comments, videos_comment jne. .


34) Mainige, millised on Ruby on Rails'i piirid?

Ruby on Rails on loodud CRUD-i veebirakenduse loomiseks MVC abil. See ei pruugi muuta Rails teistele programmeerijatele kasulikuks. Mõned funktsioonid, mida Rails ei toeta, hõlmavad

  • Võõrvõti andmebaasides
  • Linkimine mitme andmebaasiga korraga
  • Seebi veebiteenused
  • Ühendus mitme andmebaasiserveriga korraga

35) Mainige, mis vahe on super() ja superkõne helistamisel?

  • Super(): Super() kutse kutsub esile põhimeetodi ilma argumentideta, nagu arvatavasti eeldati. Nagu alati, on koodis selgesõnalisus hea.
  • super kõne: kutse super kutsub esile emameetodi samade argumentidega, mis anti edasi alammeetodile. Seetõttu ilmneb viga, kui alammeetodile edastatud argumendid ei vasta sellele, mida vanem ootab.

36) Selgitage Dig, Float ja Max kohta?

  • Ujukklassi kasutatakse alati, kui funktsioon muutub pidevalt.
  • Dig kasutatakse alati, kui soovite ujukit esitada kümnendnumbritega.
  • Maxi kasutatakse alati, kui Floati on suur vajadus.

37) Selgitage, kuidas saab defineerida Ruby regulaaravaldisi?

Rubiini regulaaravaldis on eriline märgijada, mis aitab teil teisi stringe sobitada või leida. Regulaaravaldis literaal on muster suvaliste eraldajate või kaldkriipsude vahel, millele järgneb %r.


38) Selgitage, mis on määratletud operaator?

Operaator Define määrab, kas läbitud avaldis on määratletud või mitte. Kui avaldis on määratletud, tagastab see kirjeldava stringi ja kui see pole määratletud, tagastab nullväärtuse.


39) Loetlege Ruby mõned funktsioonid?

  • Vaba formaat – saate alustada programmist kirjutamist mis tahes realt ja veerust
  • Tõstutundlik – suur- ja väiketähed on erinevad
  • Kommentaarid – kõik, millele järgneb tsiteerimata #, selle rea lõpuni, millel see ilmub, ignoreerib tõlk
  • Lause eraldajad – mitu lauset ühel real tuleb eraldada semikooloniga, kuid rea lõpus pole need kohustuslikud.

40) Mainige Rubiiniklassis saadaolevate muutujate tüüpe?

Rubiiniklassis saadaolevad muutujate tüübid on järgmised:

  • Kohalikud muutujad
  • Globaalsed muutujad
  • Klassi muutujad
  • Eksemplari muutujad

41) Selgitage, kuidas saate Ruby keeles plokki deklareerida?

Ruby puhul on plokis olev kood alati sulgudes ({}). Saate ploki välja kutsuda "tootlusavalduse" abil.


42) Selgitage, mis vahe on put- ja putc-lausel?

Erinevalt puts-lausest, mis väljastab kogu stringi ekraanile. Putc-lauset saab kasutada ühe märgi korraga väljastamiseks.


43) Selgitage, mis on Ruby klassiraamatukogu?

Ruby klassi teegid koosnevad mitmesugustest domeenidest, nagu lõime programmeerimine, andmetüübid, erinevad domeenid jne. Need klassid pakuvad paindlikke võimalusi kõrgel abstraktsioonitasemel, andes teile võimaluse luua võimsaid Ruby skripte, mis on kasulikud mitmesuguste probleemide lahendamiseks. domeenid. Järgmised domeenid, millel on asjakohased klassiteegid, on:

  • GUI programmeerimine
  • Võrgu programmeerimine
  • CGI programmeerimine
  • Teksti töötlemine

44) Ruby puhul selgitab see määratletud operaatorit?

Määratletud operaator ütleb, kas läbitud avaldis on määratletud või mitte. Kui avaldis pole defineeritud, annab see nulli ja kui avaldis on defineeritud, tagastab see kirjeldava stringi.


45) Nimetage, milline on nende kahe muutuja @@nimi ja @nimi ulatuse erinevus?

Nende kahe muutuja ulatuse erinevus seisneb selles:

  • @@nimi on klassi muutuja
  • @name on eksemplari muutuja

46) Mainige, mis on Ruby collection Iteratori süntaks?

Ruby collection süntaks Iterator collection = collection.collect.


47) Ruby koodis on sageli täheldatud, et kodeerija kasutab lühikest kätt, kasutades väljendit nagu massiivi.map(&:method_name) massiivi.map { |element| asemel element.meetodi_nimi }. Kuidas see trikk tegelikult töötab?

Kui parameeter edastatakse koos "&"-ga selle ees. Ruby kutsub sellel to_proc, et muuta see plokina kasutatavaks. Seega kutsub sümbol to_Proc välja vastava nime meetodi, mis iganes talle edastatakse. Aidates seega meie stenogrammil toimida.


48) Selgitage, mis on interpolatsioon rubiini keeles?

Rubiini interpolatsioon on stringi sisestamise protsess literaali. Asetades räsi (#) {} avatud ja sulgemise sulgudesse, saab stringi interpoleerida literaali.


49) Nimetage, mida kasutatakse Ruby klassimuutujate tähistamiseks?

Ruby's,

  • Konstant peaks algama suure tähega ja seda ei tohiks meetodi sees määratleda
  • Kohalik peab algama allkriipsumärgiga _ või väikese tähega
  • Globaalne muutuja peaks algama $-märgiga. Initsialiseerimata globaalil on nullväärtus ja see peaks olema tõstma hoiatus. Sellele saab viidata kõikjal programmis.
  • Klassimuutuja peaks algama kahekordse @@-ga ja see tuleb enne meetodi määratluses kasutamist initsialiseerida

50) Mainige, mis vahe on Procsil ja Blockidel?

Procside ja plokkide erinevus

  • Plokk on vaid osa meetodi süntaksist, samas kui procil on ploki omadused
  • Protsessid on objektid, plokid mitte
  • Argumentide loendis võib esineda maksimaalselt üks plokk
  • Ainult plokki ei saa muutujasse salvestada, samas kui Proc saab

51) Nimetage, mis vahe on ühe- ja topelttsitaadil?

Ühe jutumärgiga stringid ei töötle ASCII paokoode ega interpoleeri stringe.


52) Mainige, mis vahe on Ruby kalliskivil ja pistikprogrammil?

  • Kalliskivi: Kalliskivi on lihtsalt rubiinkood. See on installitud masinasse ja see on saadaval kõigi selles masinas töötavate rubiinirakenduste jaoks.
  • Plugin: Plugin on samuti rubiinkood, kuid see installitakse rakenduste kausta ja saadaval ainult selle konkreetse rakenduse jaoks.

53) Nimetage, mis vahe on laiendamisel ja kaasamisel?

"Include" teeb mooduli meetodid kättesaadavaks klassi eksemplari jaoks, samas kui "extend" teeb need meetodid kättesaadavaks klassile endale.

Need intervjuu küsimused aitavad ka teie viva (suuline)

Jaga

14 Kommentaarid

  1. Avatar Hasanuzzaman Sumon ütleb:

    Tootlus ei ole funktsioon. See on rubiinmärksõna, mida kasutatakse ploki täitmiseks.

    1. Avatar Terry Ray ütleb:

      Täpsemalt annab tootlus lõime (tõenäolisemalt Main.thread) juhtimise üle plokile, mis on antud kas otseselt parameetrina, st def my_method(&my_block) või alternatiivselt võidi blokeerida kaudselt, näiteks

      my_class.my_method teha
      # kood selles plokis antakse väljakutsemeetodi sees
      lõpp

  2. väga tore… jätka samas vaimus

  3. Jorge Armando ütleb:

    küsimusel nr 6 puudub Ruby keeles “tõve” klass, seega puudub ka “tõve tüüp”. Seal on ainult TrueClass ja FalseClass.

    1. Alex Silverman Alex Silverman ütleb:

      Seda värskendatakse.

  4. Avatar Terry Ray ütleb:

    tegelikult Thread.main … minu halb :)

  5. Ruby ei ole Pythonist inspireeritud, see on inspireeritud järgmistest (Perl, Smalltalk, Eiffel, Ada, BASIC ja Lisp)

    1. Alex Silverman Alex Silverman ütleb:

      Seda värskendatakse.

  6. Kena pilguheit rubiinile ja rööbastele

  7. 6) null.objekti_id on võrdne 8-ga

Jäta vastus

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on märgitud *