Top 53 pitanja i odgovora za intervju za Ruby on Rails (2025.)

Ovdje su pitanja i odgovori na intervjuu za Ruby on Rails za brucoše kao i za iskusne kandidate za razvojne programere za Ruby koji će dobiti posao iz snova.

1) Objasnite što je Ruby on Rails?

  • Rubin: To je objektno orijentirani programski jezik inspiriran PERL-om, Smalltalkom, Eiffelom, Adom, Basicom i Lispom.
  • Tračnice: To je okvir koji se koristi za izradu web aplikacija

2) Objasnite što su biblioteke klasa u Rubyju?

Biblioteke klasa u Rubyju sastoje se od raznih domena, kao što su tipovi podataka, programiranje niti, razne domene itd.

Besplatno preuzimanje PDF-a: Ruby on Rails Pitanja i odgovori za intervju


3) Navedite koja je konvencija imenovanja u Railsu?

  • Varijable: Za deklariranje varijabli, sva su slova mala, a riječi su odvojene podvlakama
  • Razred i modul: Moduli i klase koriste MixedCase i nemaju podvlaku; svaka riječ počinje velikim slovom
  • Tablica baze podataka: Naziv tablice baze podataka trebao bi imati mala slova i podvlaku između riječi, a svi nazivi tablica trebali bi biti u obliku množine, na primjer invoice_items
  • Model: Predstavlja se neprekinutim MixedCase i uvijek ima jedninu s nazivom tablice
  • kontroler: Nazivi klasa kontrolera predstavljeni su u obliku množine, tako da bi OrdersController bio kontroler za tablicu naloga.

4) Objasnite što je "Yield" u Ruby on Rails?

Ruby metoda koja prima blok koda poziva ga pozivanjem s "Yield".


5) Objasnite što je ORM (Object-Relationship-Model) u Railsu?

ORM ili Object Relationship Model u Railsu označava da su vaše klase preslikane u tablicu u bazi podataka, a objekti su izravno preslikani u retke u tablici.


6) Navedite koja je razlika između false i nula u Rubyju?

U Rubyju, false je objekt FalseClass za predstavljanje booleove vrijednosti, dok je Nil objekt NilClass koji označava nepostojanje vrijednosti. Ima object_id 4.

Ruby on Rails Pitanja za intervju
Ruby on Rails Pitanja za intervju


7) Navedite koji su pozitivni aspekti Railsa?

Rails pruža mnoge značajke poput

  • Meta-programiranje: Rails koristi generiranje koda, ali za teške poslove oslanja se na meta-programiranje. Ruby se smatra jednim od najboljih jezika za meta-programiranje.
  • Aktivni zapis: Sprema objekt u bazu podataka kroz Active Record Framework. Rails verzija Active Recorda identificira stupac u shemi i automatski ih povezuje s objektima vaše domene pomoću metaprogramiranja
  • Skele: Tračnice imaju mogućnost automatskog stvaranja skele ili privremenog koda
  • Konvencija o konfiguraciji: Za razliku od drugih razvojnih okvira, Rails ne zahtijeva mnogo konfiguracije, ako pažljivo slijedite konvenciju imenovanja
  • Tri okruženja: Rails dolazi s tri zadana okruženja za testiranje, razvoj i proizvodnju.
  • Ugrađeno testiranje: Podržava kod koji se zove harness i fixtures koji čine testne slučajeve za pisanje i izvršavanje.

8) Objasnite koja je uloga poddirektorija app/controllers i app/helpers?

  • Aplikacija/kontroleri: web zahtjevom korisnika upravlja upravljač. Poddirektorij kontrolera mjesto je gdje Rails traži klase kontrolera
  • Aplikacija/pomoćnici: Poddirektorij pomoćnika sadrži sve pomoćne klase koje se koriste za pomoć klasama pogleda, modela i kontrolera.

9) Navedite koja je razlika između niza i simbola?

Oboje djeluju na isti način samo što se razlikuju u svojim ponašanjima koja su suprotna jedno drugom. Razlika leži u object_id-u, memoriji i podešavanju procesa kada se koriste zajedno. Simbol pripada kategoriji nepromjenjivih objekata, dok se nizovi smatraju promjenjivim objektima.


10) Objasnite po čemu se simbol razlikuje od varijabli?

Simbol se razlikuje od varijabli u sljedećim aspektima

  • Više je poput niza nego varijable
  • U Rubyju niz je promjenjiv, ali je simbol nepromjenjiv
  • Potrebno je izraditi samo jednu kopiju simbola
  • Simboli se često koriste kao odgovarajući enumi u Rubyju

11) Objasnite što je Rails Active Record u Ruby on Rails?

Aktivni zapis Railsa je sloj Object/Relational Mapping (ORM) koji se isporučuje s Railsom. Slijedi standardni ORM model kao

  • Tablica karte za razrede
  • Redovi se preslikavaju na objekte
  • Stupci se preslikavaju na atribute objekta

12) Objasnite kako se Rails implementira Ajax?

Web stranica koju pokreće Ajax dohvaća web stranicu s poslužitelja koja je nova ili promijenjena za razliku od druge web stranice gdje morate osvježiti stranicu kako biste dobili najnovije informacije.

Rails pokreće Ajax operaciju na sljedeće načine

  • Neki okidači požara: Okidač bi mogao biti korisnik koji klikne na poveznicu ili gumb, korisnici indukuju promjene podataka u polju ili na obrascu
  • Web klijent poziva poslužitelj: Metoda Java skripte, XMLHttpRequest, šalje podatke povezane s okidačem rukovatelju radnjom na poslužitelju. Podaci mogu biti ID potvrdnog okvira, cijeli obrazac ili tekst u polju za unos
  • Poslužitelj obrađuje: Rukovatelj radnjom na strani poslužitelja radi nešto s podacima i dohvaća HTML fragment web klijentu
  • Klijent dobiva odgovor: JavaScript na strani klijenta, koji Rails automatski generira, prima HTML fragment i koristi ga za ažuriranje određenog dijela trenutnog

13) Navedite kako možete stvoriti kontroler za subjekt?

Za izradu kontrolera za subjekt možete koristiti sljedeću naredbu

C:\ruby\library> ruby ​​skripta/generiraj predmet kontrolera


14) Navedite što je Rails migracija?

Rails Migration omogućuje Rubyju da napravi promjene u shemi baze podataka, što omogućuje korištenje sustava kontrole verzija kako bi stvari bile sinkronizirane sa stvarnim kodom.


15) Navedite što Rails Migration može učiniti?

Rails Migration može učiniti sljedeće stvari

  • Izradi tablicu
  • Spusti stol
  • Preimenuj tablicu
  • Dodajte stupac
  • Preimenuj stupac
  • Promjena stupca
  • Ukloni stupac i tako dalje

16) Navedite koja je naredba za kreiranje migracije?

Naredba za stvaranje migracije uključuje

C:\ruby\application>ruby skripta/generiraj naziv tablice za migraciju


17) Objasnite kada se koristi self.up i self.down metoda?

Prilikom prelaska na novu verziju, sebe.gore metoda se koristi dok sebe.dolje Metoda se koristi za vraćanje mojih promjena ako je potrebno.


18) Navedite koja je uloga Rails Controllera?

Rails kontroler je logično središte aplikacije. Olakšava interakciju između korisnika, prikaza i modela. Obavlja i druge djelatnosti kao što su

  • Sposoban je usmjeravati vanjske zahtjeve na interne akcije. Izuzetno dobro obrađuje URL
  • Regulira pomoćne module koji proširuju mogućnosti predložaka pogleda bez gomilanja njihovog koda
  • Regulira sjednice; koji korisnicima daje dojam stalne interakcije s našim aplikacijama

19) Navedite koja je razlika između “HashWithIndifferent” aktivne podrške i “Hash” Rubyja?

The Smjesa klasa u Rubyjevoj osnovnoj biblioteci vraća vrijednost korištenjem standarda “= =” usporedba na tipkama. To znači da vrijednost pohranjena za a simbol ključ se ne može dohvatiti korištenjem ekvivalentnog niza. Dok je HashWithIndifferentAccess tretira tipke simbola i tipke niza kao ekvivalentne.


20) Objasnite što je Cross-Site Request Forgery (CSRF) i kako je Rails zaštićen od toga?

CSRF je oblik napada gdje haker šalje zahtjev za stranicu u vaše ime drugoj web stranici, uzrokujući štetu ili otkrivajući vaše osjetljive podatke. Za zaštitu od CSRF napada, morate dodati “zaštiti_od_krivotvorenja” na vaše Application Controller. To će uzrokovati da Rails zahtijeva CSRF token za obradu zahtjeva. CSRF token dan je kao skriveno polje u svakom obrascu kreiranom pomoću Rails alata za izradu obrazaca.


21) Objasnite što je Mixin u Railsu?

Mixin u Rubyju nudi alternativu višestrukom nasljeđivanju, koristeći mixin module koji se mogu uvesti unutar druge klase.


22) Objasnite kako definirate varijablu instance, globalnu varijablu i varijablu klase u Rubyju?

  • Varijabla instance Ruby počinje s — @
  • Varijable klase Ruby počinju s — @@
  • Globalne varijable Ruby počinju s — $

23) Objasnite kako možete pokrenuti Rails aplikaciju bez kreiranja baze podataka?

Svoju aplikaciju možete izvršiti uklanjanjem komentara iz retka u okruženju.rb

put=> korijenski put conf/environment.rb

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

24) Navedite koja je razlika između promatrača i povratnih poziva u Ruby on Rails?

  • Promatrači tračnica: Promatrači su isti kao povratni poziv, ali se koriste kada metoda nije izravno povezana sa životnim ciklusom objekta. Također, promatrač živi duže, a može se odvojiti ili pričvrstiti u bilo kojem trenutku. Na primjer, prikazivanje vrijednosti iz modela u korisničkom sučelju i ažuriranje modela prema korisničkom unosu.
  • Rails povratni poziv: Povratni pozivi su metode koje se mogu pozvati u određenim trenucima životnog ciklusa objekta, na primjer mogu se pozvati kada je objekt potvrđen, kreiran, ažuriran, izbrisan. Povratni poziv kratko traje. Na primjer, pokretanje niti i davanje povratnog poziva koji se poziva kada nit završi

25) Objasnite što je rake u Railsu?

Rake je Ruby Make; to je Ruby uslužni program koji zamjenjuje Unix uslužni program 'make' i koristi 'Rakefile' i '.rake datoteke' za izradu popisa zadataka. U Railsu se Rake koristi za normalne administrativne zadatke poput migracije baze podataka putem skripti, učitavanja sheme u bazu podataka itd.


26) Objasnite kako možete ispisati sve rute za aplikaciju?

Za popis svih ruta za aplikaciju možete napisati rake rute u terminalu.


27) Objasnite što je čistač u Railsu?

Čistači su odgovorni za istek ili ukidanje predmemorija kada se objekt modela promijeni.


28) Spomenite zapisnik koji se mora vidjeti da bi se prijavile pogreške u Ruby Rails?

Rails će prijaviti pogreške iz Apachea u log/Apache.log i pogreške iz Ruby koda u log/development.log.


29) Objasnite koja je razlika između dinamičke i statičke skele?

Dinamičke skele Statičke skele
  • Automatski stvara cijeli sadržaj i korisničko sučelje tijekom izvođenja
  • Omogućuje stvaranje novih, brisanje, uređivanje metoda za korištenje u aplikaciji
  • Za sinkronizaciju nije potrebna baza podataka
  • Zahtijeva ručni unos u naredbu za stvaranje podataka s njihovim poljima
  • Ne zahtijeva postojanje takve generacije
  • Zahtijeva da se baza podataka migrira

30) Navedite koja je funkcija skupljanja smeća u Ruby on Rails?

Funkcije skupljanja smeća u Ruby on Rails uključuju

  • Omogućuje uklanjanje vrijednosti pokazivača koji su zaostali nakon završetka izvođenja programa
  • Oslobađa programera od praćenja objekta koji se dinamički stvara tijekom izvođenja
  • Daje prednost uklanjanja nedostupnih objekata iz memorije i omogućuje drugim procesima da koriste memoriju

31) Navedite koja je razlika između preusmjeravanja i renderiranja u Ruby on Rails?

  • Preusmjeravanje je metoda koja se koristi za izdavanje poruke o pogrešci u slučaju da stranica nije izdana ili pronađena pregledniku. Kaže pregledniku da obradi i izda novi zahtjev.
  • Render je metoda koja se koristi za izradu sadržaja. Renderiranje funkcionira samo kada je kontroler ispravno postavljen s varijablama koje se trebaju renderirati.

32) Navedite koja je svrha RJ-ova u Railsu?

RJs je predložak koji proizvodi JavaScript koji preglednik pokreće u bloku eval kao odgovor na AJAX zahtjev. Ponekad se koristi za definiranje JavaScripta, prototipa i pomoćnika koje pruža Rails.


33) Objasnite što je polimorfna asocijacija u Ruby on Rails?

Polimorfna asocijacija omogućuje povezivanje objekta ActiveRecord s višestrukim objektima ActiveRecord. Savršen primjer polimorfne asocijacije je društvena stranica na kojoj korisnici mogu komentirati bilo gdje, bilo da se radi o videozapisima, fotografijama, vezama, ažuriranjima statusa itd. Ne bi bilo izvedivo ako morate stvoriti pojedinačni komentar kao što su photos_comments, videos_comment i tako dalje .


34) Navedite koja su ograničenja Ruby on Rails?

Ruby on Rails dizajniran je za stvaranje CRUD web aplikacije koristeći MVC. Zbog toga Rails možda neće biti koristan za druge programere. Neke od značajki koje Rails ne podržava uključuju

  • Strani ključ u bazama podataka
  • Povezivanje s više baza podataka odjednom
  • Web usluge sapuna
  • Povezivanje s više poslužitelja baze podataka odjednom

35) Navedite koja je razlika između pozivanja super() i super poziva?

  • super(): Poziv super() poziva nadređenu metodu bez ikakvih argumenata, kao što se vjerojatno i očekivalo. Kao i uvijek, dobro je biti eksplicitan u svom kodu.
  • super poziv: Poziv super poziva nadređenu metodu s istim argumentima koji su proslijeđeni podređenoj metodi. Stoga će se pojaviti pogreška ako se argumenti proslijeđeni podređenoj metodi ne podudaraju s onim što roditelj očekuje.

36) Objasnite o Dig, Float i Max?

  • Float klasa se koristi kad god se funkcija stalno mijenja.
  • Dig se koristi kad god želite predstaviti float u decimalnim znamenkama.
  • Max se koristi kad god postoji velika potreba za Floatom.

37) Objasnite kako možemo definirati Ruby regularne izraze?

Ruby regularni izraz je poseban niz znakova koji vam pomaže da pronađete ili pronađete druge nizove. Literal regularnog izraza je uzorak između proizvoljnih graničnika ili kosih crta iza kojih slijedi %r.


38) Objasnite što je definirani operator?

Operator definiranja navodi je li proslijeđeni izraz definiran ili ne. Ako je izraz definiran, vraća opisni niz, a ako nije definiran, vraća nultu vrijednost.


39) Navedite nekoliko značajki Rubyja?

  • Slobodan format – Možete početi pisati iz programa iz bilo kojeg retka i stupca
  • Razlikuje velika i mala slova – velika i mala slova se razlikuju
  • Komentari – sve nakon čega slijedi nenavodnik #, do kraja retka u kojem se pojavljuje, prevoditelj ignorira
  • Razdjelnici naredbi - Više naredbi u jednom retku moraju biti odvojene točkom i zarezom, ali nisu potrebne na kraju retka.

40) Spomenite vrste varijabli dostupnih u Ruby klasi?

Vrste varijabli dostupnih u Ruby klasi su,

  • Lokalne varijable
  • Globalne varijable
  • Varijable klase
  • Varijable instance

41) Objasnite kako možete deklarirati blok u Rubyju?

U Rubyju, kod u bloku uvijek je unutar zagrada ({}). Možete pozvati blok korištenjem "yield statement".


42) Objasnite koja je razlika između put i putc iskaza?

Za razliku od naredbe puts, koja ispisuje cijeli niz na ekran. Naredba Putc može se koristiti za ispis jednog po jednog znaka.


43) Objasnite što je biblioteka klasa u Rubyju?

Biblioteke klasa Ruby sastoje se od različitih domena, kao što su programiranje niti, tipovi podataka, razne domene itd. Ove klase daju fleksibilne mogućnosti na visokoj razini apstrakcije, dajući vam mogućnost stvaranja moćnih Ruby skripti korisnih u raznim problemima domene. Sljedeće domene koje imaju relevantne biblioteke klasa su,

  • GUI programiranje
  • Mrežno programiranje
  • CGI programiranje
  • Obrada teksta

44) U Rubyju, objašnjava definirani operator?

Definirani operator govori je li proslijeđeni izraz definiran ili ne. Ako izraz nije definiran, daje null, a ako je izraz definiran, vraća niz opisa.


45) Navedite koja je razlika u opsegu za ove dvije varijable: @@name i @name?

Razlika u opsegu za ove dvije varijable je da:

  • @@name je varijabla klase
  • @name je varijabla instance

46) Navedite koja je sintaksa za Ruby collect Iterator?

Sintaksa za Ruby collect Iterator collection = collection.collect.


47) U Ruby kodu često se primjećuje da koder koristi kratki oblik upotrebe izraza poput poredak.map(&:ime_metode) umjesto array.map { |element| element.ime_metode }. Kako ovaj trik zapravo funkcionira?

Kada se parametar proslijedi s “&” ispred njega. Ruby će pozvati to_proc na njemu u pokušaju da ga učini upotrebljivim kao blok. Dakle, simbol to_Proc će pozvati metodu odgovarajućeg imena na ono što mu se proslijedi. Tako pomažemo našem stenografskom triku da funkcionira.


48) Objasnite što je interpolacija u Rubyju?

Ruby interpolacija je proces umetanja niza u literal. Postavljanjem Hash (#) unutar {} otvorenih i zatvorenih zagrada, može se interpolirati niz u literal.


49) Navedite koja se notacija koristi za označavanje varijabli klase u Rubyju?

U Rubyju,

  • Konstanta treba započeti velikim slovom i ne smije se definirati unutar metode
  • Lokalno mora započeti znakom podvlake _ ili malim slovom
  • Globalna varijabla treba započeti znakom $. Neinicijalizirani global ima vrijednost "nula" i trebao bi podići upozorenje. Može se uputiti bilo gdje u programu.
  • Varijabla klase trebala bi započeti s dvostrukim @@ i mora se prvo inicijalizirati prije upotrebe u definiciji metode

50) Navedite koja je razlika između Procs i Blocks?

Razlika između Procs i Blocks,

  • Blok je samo dio sintakse metode dok proc ima karakteristike bloka
  • Procesi su objekti, blokovi nisu
  • Na popisu argumenata može se pojaviti najviše jedan blok
  • Jedini blok se ne može pohraniti u varijablu dok Proc može

51) Navedite koja je razlika između jednostrukih i dvostrukih navodnika?

Nizovi s jednostrukim navodnicima ne obrađuju ASCII izlazne kodove i ne vrše interpolaciju nizova.


52) Navedite koja je razlika između gem-a i dodatka u Rubyju?

  • Dragulj: Dragulj je samo šifra rubina. Instaliran je na stroju i dostupan je za sve Ruby aplikacije koje se izvode na tom stroju.
  • Dodatak: Dodatak je također ruby ​​kod, ali je instaliran u mapi aplikacije i dostupan je samo za tu određenu aplikaciju.

53) Navedite koja je razlika proširiti i uključiti?

“Include” čini metode modula dostupnima instanci klase, dok “extend” čini te metode dostupnima samoj klasi.

Ova pitanja za intervju također će vam pomoći u vašem životu

Podijeli

14 Komentari

  1. Avatar Hasanuzzaman Sumon kaže:

    Prinos nije funkcija. To je ključna riječ ruby ​​koja se koristi za izvođenje bloka.

    1. Avatar Terry Ray kaže:

      Konkretno, yield će prenijeti kontrolu niti (Main.thread najvjerojatnije) bloku koji je proslijeđen eksplicitno kao parametar, tj. def my_method(&my_block) Ili je alternativno blok mogao biti proslijeđen implicitno, kao što je

      moj_razred.moja_metoda učiniti
      # kod u ovom bloku bit će ustupljen unutar pozivajuće metode
      kraj

  2. jako lijepo… samo tako nastavi

  3. Jorge Armando kaže:

    na pitanje #6, u Rubyju ne postoji “Boolean” klasa, stoga ni “Boolean tip”. Postoje samo TrueClass i FalseClass.

  4. Avatar Terry Ray kaže:

    zapravo Thread.main ... moja greška :)

  5. Ruby nije inspiriran Pythonom, inspiriran je sljedećim (Perl, Smalltalk, Eiffel, Ada, BASIC i Lisp)

  6. Lijep pogled na rubin i tračnice

  7. 6) nil.object_id je jednako 8

Ostavi odgovor

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena *