En İyi 53 Ruby on Rails Röportaj Soruları ve Cevapları (2025)
Burada hem yeni başlayanlar hem de deneyimli Ruby geliştirici adaylarının hayallerindeki işi bulmaları için Ruby on Rails mülakat soruları ve yanıtları yer alıyor.
1) Ruby on Rails'in ne olduğunu açıklayın?
- Yakut: PERL, Smalltalk, Eiffel, Ada, Basic ve Lisp'ten ilham alan nesne yönelimli bir programlama dilidir.
- Raylar: Web uygulaması oluşturmak için kullanılan bir çerçevedir.
2) Ruby'deki sınıf kütüphanelerinin ne olduğunu açıklayın?
Ruby'deki sınıf kütüphaneleri veri türleri, iş parçacığı programlama, çeşitli alanlar vb. gibi çeşitli alanlardan oluşur.
Ücretsiz PDF İndir: Ruby on Rails Röportaj Soruları ve Cevapları
3) Rails'deki adlandırma kuralının ne olduğundan bahsedin?
- Değişkenler: Değişkenleri bildirmek için tüm harfler küçük harftir ve kelimeler alt çizgiyle ayrılır
- Sınıf ve Modül: Modüller ve Sınıflar MixedCase kullanır ve alt çizgi içermez; her kelime büyük harfle başlar
- Veritabanı Tablosu: Veritabanı tablo adında kelimeler arasında küçük harfler ve alt çizgi bulunmalı ve tüm tablo adları çoğul biçimde olmalıdır, örneğin fatura_öğeleri
- Model: Kesintisiz MixedCase ile temsil edilir ve tablo adıyla her zaman tekildir
- denetleyici: Denetleyici sınıfı adları, OrderController'ın sipariş tablosunun denetleyicisi olacağı şekilde çoğul biçimde temsil edilir.
4) Ruby on Rails'de "Verim" nedir açıklayın?
Bir kod bloğu alan Ruby yöntemi, onu "Verim" ile çağırarak çağırır.
5) Rails'de ORM (Nesne-İlişki-Modeli) nedir açıklayınız?
Rails'deki ORM veya Nesne İlişkisi Modeli, sınıflarınızın veritabanındaki tabloya, nesnelerin ise doğrudan tablodaki satırlara eşlendiğini belirtir.
6) Ruby'de false ve nil arasındaki farkın ne olduğundan bahsedin?
Ruby'de false, bir boole değerini temsil eden bir FalseClass nesnesidir; Nil ise bir değerin yokluğunu gösteren bir NilClass nesnesidir. Bir object_id 4'e sahiptir.
7) Rails'in olumlu yönleri nelerdir?
Raylar gibi birçok özellik sağlar
- Meta programlama: Rails kod oluşturmayı kullanır ancak ağır kaldırma işleri için meta programlamaya dayanır. Ruby, Meta programlama için en iyi dillerden biri olarak kabul edilir.
- Aktif Kayıt: Active Record Framework aracılığıyla nesneyi veritabanına kaydeder. Active Record'un Rails sürümü, bir şemadaki sütunu tanımlar ve metaprogramlamayı kullanarak bunları otomatik olarak etki alanı nesnelerinize bağlar.
- İskele: Raylar otomatik olarak iskele veya geçici kod oluşturma özelliğine sahiptir
- Yapılandırmaya ilişkin kural: Diğer geliştirme çerçevelerinden farklı olarak, adlandırma kuralını dikkatli bir şekilde takip ederseniz Rails çok fazla yapılandırma gerektirmez
- Üç ortam: Rails üç varsayılan ortam testi, geliştirme ve üretim ile birlikte gelir.
- Yerleşik test: Test senaryolarının yazılmasını ve yürütülmesini sağlayan donanım ve donanım adı verilen kodu destekler.
8) App/controllers ve app/helpers alt dizininin rolünü açıklayın.
- Uygulama/kontrolörler: Kullanıcıdan gelen bir web isteği Denetleyici tarafından gerçekleştirilir. Denetleyici alt dizini, Rails'in denetleyici sınıflarını bulmaya çalıştığı yerdir
- Uygulama/yardımcılar: Yardımcının alt dizini görünüm, model ve denetleyici sınıflarına yardımcı olmak için kullanılan tüm yardımcı sınıfları içerir.
9) String ve Sembol arasındaki farkın ne olduğundan bahsedin?
Her ikisi de aynı şekilde hareket ederler, ancak birbirlerine zıt olan davranışları farklıdır. Fark, birlikte kullanıldıklarında object_id, bellek ve işlem ayarında yatmaktadır. Sembol, değişmez nesneler kategorisine aitken, Dizeler değiştirilebilir nesneler olarak kabul edilir.
10) Sembolün değişkenlerden nasıl farklı olduğunu açıklayın?
Sembol aşağıdaki yönlerden değişkenlerden farklıdır:
- Değişkenden çok bir dizeye benziyor
- Ruby'de dize değiştirilebilir ancak Sembol değişmez
- Sembolün yalnızca bir kopyasının oluşturulması gerekir
- Semboller genellikle Ruby'deki numaralandırmalara karşılık olarak kullanılır.
11) Ruby on Rails'de Rails Aktif Kaydının ne olduğunu açıklayın.
Rails aktif kaydı, Rails ile birlikte sağlanan Nesne/İlişkisel Haritalama (ORM) katmanıdır. Standart ORM modelini şu şekilde takip eder:
- Sınıflara yönelik tablo haritası
- Satırlar nesnelerle eşlenir
- Sütunlar nesne nitelikleriyle eşleşir
12) Rails'in nasıl uygulandığını açıklayın Ajax?
Ajax destekli web sayfası, en son bilgileri almak için sayfayı yenilemeniz gereken diğer web sayfalarının aksine, yeni veya değiştirilmiş web sayfasını sunucudan alır.
Rails bir Ajax Operasyonunu aşağıdaki yollarla tetikler
- Bazıları yangınları tetikler: Tetikleyici, bir kullanıcının bir bağlantıya veya düğmeye tıklaması, kullanıcıların alandaki veya formdaki verilerde değişiklik yapması olabilir.
- Web istemcisi sunucuyu çağırır: Bir Java komut dosyası yöntemi olan XMLHttpRequest, tetikleyiciyle bağlantılı verileri sunucudaki bir eylem işleyicisine gönderir. Veriler bir onay kutusunun kimliği, formun tamamı veya giriş alanındaki metin olabilir
- Sunucu şunları işler: Sunucu tarafı eylem işleyicisi verilerle bir şeyler yapar ve bir HTML web istemcisine parça
- Müşteri yanıtı alır: Rails'in otomatik olarak oluşturduğu istemci tarafı JavaScript, HTML parçasını alır ve mevcut dosyanın belirli bir bölümünü güncellemek için kullanır.
13) Konu için nasıl bir kontrol cihazı oluşturabileceğinizi söyleyin?
Konuya yönelik bir denetleyici oluşturmak için aşağıdaki komutu kullanabilirsiniz.
C:\ruby\library> ruby betiği/denetleyici oluşturma konusu
14) Rails Migration'ın ne olduğundan bahsedin.
Rails Migration, Ruby'nin veritabanı şemasında değişiklik yapmasına olanak tanıyarak, işleri gerçek kodla senkronize bırakmak için bir sürüm kontrol sisteminin kullanılmasını mümkün kılar.
15) Rails Migration'ın neler yapabileceğini listeleyin?
Rails Migration aşağıdakileri yapabilir:
- Tablo oluştur
- Tabloyu bırak
- Tabloyu yeniden adlandır
- Sütun ekle
- Sütunu yeniden adlandır
- Sütunu değiştir
- Sütunu vb. kaldır
16) Migrasyon oluşturma komutunun ne olduğundan bahsedin.
Geçiş komutu oluşturmak için şunları içerir:
C:\ruby\application>ruby betiği/geçiş tablosu oluştur_adı
17) Self.up ve self.down yönteminin ne zaman kullanıldığını açıklayın?
Yeni bir sürüme geçiş yaparken, kendini yukarı kaldır yöntemi kullanılırken kendini aşağı Gerekirse değişikliklerimi geri almak için yöntem kullanılır.
18) Rails Controller'ın görevinin ne olduğundan bahsedin?
Rails denetleyicisi uygulamanın mantıksal merkezidir. Kullanıcılar, görünümler ve model arasındaki etkileşimi kolaylaştırır. Ayrıca aşağıdaki gibi başka faaliyetler de gerçekleştirir
- Harici istekleri dahili eylemlere yönlendirme yeteneğine sahiptir. URL'yi son derece iyi yönetir
- Görünüm şablonlarının yeteneklerini kodlarını büyütmeden genişleten yardımcı modülleri düzenler.
- Seansları düzenler; kullanıcılara uygulamalarımızla devam eden bir etkileşim izlenimi veren
19) Aktif desteğin “HashWithIn Different” ile Ruby'nin “Hash” arasındaki farkın ne olduğundan bahsedin?
The Esrar Ruby'nin çekirdek kütüphanesindeki sınıf, bir standart kullanarak değer döndürür “= =” tuşların karşılaştırılması. Bu, bir süre için saklanan değer anlamına gelir. sembol anahtar eşdeğer dize kullanılarak alınamıyor. iken HashWithIn DifferentErişim Sembol tuşlarını ve Dize tuşlarını eşdeğer olarak ele alır.
20) Siteler Arası İstek Sahteciliğinin (CSRF) ne olduğunu ve Rails'in buna karşı nasıl korunduğunu açıklayın.
CSRF, bilgisayar korsanının sizin adınıza farklı bir web sitesine sayfa isteği göndererek hasara neden olduğu veya hassas verilerinizi açığa çıkardığı bir saldırı şeklidir. CSRF saldırılarından korunmak için şunu eklemelisiniz: “sahtecilikten_koru” sizin için Uygulama Denetleyicisi. Bu, Rails'in isteği işlemek için bir CSRF belirtecine ihtiyaç duymasına neden olacaktır. CSRF belirteci, Rails form oluşturucuları kullanılarak oluşturulan her formda gizli bir alan olarak verilir.
21) Rails'de Mixin nedir açıklayınız?
Ruby'deki Mixin, birden fazla kalıtıma alternatif sunar; mixin modülleri kullanılarak diğer sınıfların içine aktarılabilir.
22) Ruby'de Örnek Değişkeni, Global Değişkeni ve Sınıf Değişkenini nasıl tanımladığınızı açıklayın?
- Ruby Örneği değişkeni şununla başlar — @
- Ruby Sınıfı değişkenleri şununla başlar: @@
- Ruby Global değişkenleri şununla başlar: $
23) Rails uygulamasını veritabanları oluşturmadan nasıl çalıştırabileceğinizi açıklayın?
Environment.rb dosyasındaki satırın açıklamasını kaldırarak uygulamanızı çalıştırabilirsiniz.
yol=> rootpath conf/environment.rb
config.frameworks = [ action_web_service, :action_mailer, :active_record]
24) Ruby on Rails'deki Gözlemciler ve Geri Aramalar arasındaki farkın ne olduğundan bahsedin.
- Ray Gözlemcileri: Gözlemciler Geri Çağırma ile aynıdır ancak yöntemin doğrudan nesne yaşam döngüsüyle ilişkili olmadığı durumlarda kullanılır. Ayrıca gözlemci daha uzun yaşar ve istediği zaman sökülüp takılabilir. Örneğin, kullanıcı arayüzünde bir modele ait değerlerin görüntülenmesi ve modelin kullanıcı girişinden güncellenmesi.
- Rayların Geri Çağrılması: Geri aramalar, bir nesnenin yaşam döngüsünün belirli anlarında çağrılabilen yöntemlerdir; örneğin bir nesne doğrulandığında, oluşturulduğunda, güncellendiğinde, silindiğinde çağrılabilir. Geri arama kısa ömürlüdür. Örneğin, bir iş parçacığını çalıştırmak ve iş parçacığı sonlandırıldığında çağrılan bir geri aramayı yapmak
25) Rails'de eğim nedir açıklayınız?
Rake bir Ruby Markasıdır; Unix yardımcı programı 'make'nin yerine geçen bir Ruby yardımcı programıdır ve görevlerin bir listesini oluşturmak için 'Rakefile' ve '.rake dosyalarını' kullanır. Rails'de Rake, veritabanını komut dosyaları aracılığıyla taşımak, veritabanına bir şema yüklemek vb. gibi normal yönetim görevleri için kullanılır.
26) Bir uygulama için tüm rotaları nasıl listeleyebileceğinizi açıklayın.
Bir uygulamaya ait tüm rotaları listelemek için terminalde rake rotaları yazabilirsiniz.
27) Rails'de süpürücü nedir açıklayınız?
Süpürücüler, model nesnesi değiştiğinde önbelleklerin süresinin dolması veya sonlandırılmasından sorumludur.
28) Ruby Rails'deki hataları bildirmek için görülmesi gereken kayıttan bahseder misiniz?
Rails, Apache'den gelen hataları log/Apache.log dosyasında ve Ruby kodundaki hataları log/development.log dosyasında raporlayacaktır.
29) Dinamik ve Statik İskele arasındaki farkın ne olduğunu açıklayınız?
Dinamik İskele | Statik İskele |
|
|
30) Ruby on Rails'de çöp toplamanın işlevi nedir?
Ruby on Rails'deki çöp toplama işlevleri şunları içerir:
- Programın yürütülmesi bittiğinde geride kalan işaretçi değerlerinin kaldırılmasını sağlar.
- Programcıyı çalışma zamanında dinamik olarak oluşturulan nesneyi takip etmekten kurtarır.
- Erişilemeyen nesnelerin bellekten çıkarılması avantajını sağlar ve diğer işlemlerin belleği kullanmasına olanak tanır.
31) Ruby on Rails'de yönlendirme ve oluşturma arasındaki farkın ne olduğundan bahsedin?
- Yönlendirme, sayfanın yayınlanmaması veya tarayıcıda bulunamaması durumunda hata mesajı vermek için kullanılan bir yöntemdir. Tarayıcıya yeni bir istek işlemesini ve yayınlamasını söyler.
- Render, içeriği oluşturmak için kullanılan bir yöntemdir. İşleme yalnızca denetleyici, işlenmesi gereken değişkenlerle doğru şekilde kurulduğunda çalışır.
32) Rails'deki RJ'lerin amacının ne olduğundan bahsedin?
RJ'ler, bir AJAX isteğine yanıt olarak tarayıcı tarafından bir değerlendirme bloğunda çalıştırılan JavaScript üreten bir şablondur. Bazen JavaScript'i, Prototipi ve Rails tarafından sağlanan yardımcıları tanımlamak için kullanılır.
33) Ruby on Rails'de Polimorfik İlişkinin ne olduğunu açıklayın?
Polimorfik İlişkilendirme, bir ActiveRecord nesnesinin Birden Çok ActiveRecord nesnesine bağlanmasına olanak tanır. Polimorfik Derneğin mükemmel bir örneği, kullanıcıların video, fotoğraf, bağlantı, durum güncellemeleri vb. herhangi bir yerde yorum yapabileceği bir sosyal sitedir. Fotoğraflar_yorumlar, videolar_yorumlar vb. gibi bireysel bir yorum oluşturmanız gerekiyorsa bu mümkün olmayacaktır. .
34) Ruby on Rails'in sınırlarının neler olduğundan bahsedin?
Ruby on Rails, MVC kullanarak CRUD web uygulaması oluşturmak için tasarlanmıştır. Bu, Rails'in diğer programcılar için kullanışlı olmamasına neden olabilir. Rails'in desteklemediği özelliklerden bazıları şunlardır:
- Veritabanlarındaki yabancı anahtar
- Birden fazla veri tabanına aynı anda bağlanma
- Sabun web hizmetleri
- Aynı anda birden fazla veri tabanı sunucusuna bağlantı
35) Super() çağrısı ile super çağrısı arasındaki farkın ne olduğundan bahsedin.
- Süper(): Super() çağrısı, muhtemelen beklendiği gibi herhangi bir argüman olmadan ana yöntemi çağırır. Her zaman olduğu gibi kodunuzda açık olmak iyi bir şeydir.
- süper çağrı: Bir super çağrısı, alt yönteme iletilen aynı bağımsız değişkenlerle ana yöntemi çağırır. Bu nedenle, alt yönteme iletilen argümanlar ebeveynin beklediğiyle eşleşmezse bir hata oluşacaktır.
36) Dig, Float ve Max'i açıklayın?
- Float sınıfı, fonksiyon sürekli değiştiğinde kullanılır.
- Dig, bir kayan noktayı ondalık basamaklarla temsil etmek istediğinizde kullanılır.
- Max, Float'a çok ihtiyaç duyulduğunda kullanılır.
37) Ruby düzenli ifadelerini nasıl tanımlayabileceğimizi açıklayın?
Ruby düzenli ifadesi, diğer dizeleri eşleştirmenize veya bulmanıza yardımcı olan özel bir karakter dizisidir. Düzenli ifade değişmez değeri, keyfi sınırlayıcılar veya eğik çizgiler ve ardından %r gelen bir kalıptır.
38) Tanımlanan operatör nedir açıklayınız?
Define operatörü, iletilen bir ifadenin tanımlanıp tanımlanmadığını belirtir. İfade tanımlanmışsa açıklama dizesini döndürür, tanımlanmamışsa boş bir değer döndürür.
39) Ruby'nin birkaç özelliğini sıralar mısınız?
- Serbest format – Programdan yazmaya herhangi bir satır ve sütundan başlayabilirsiniz.
- Büyük/küçük harfe duyarlı – Büyük ve küçük harfler farklıdır
- Yorumlar – Alıntı yapılmadan takip edilen her şey #göründüğü satırın sonuna kadar olan kısım yorumlayıcı tarafından dikkate alınmaz
- İfade sınırlayıcıları - Bir satırdaki birden çok ifade noktalı virgülle ayrılmalıdır, ancak satırın sonunda bulunması zorunlu değildir.
40) Ruby Sınıfında bulunan değişken türlerinden bahseder misiniz?
Ruby Sınıfında mevcut olan değişken türleri şunlardır:
- Yerel Değişkenler
- Global Değişkenler
- Sınıf Değişkenleri
- Örnek değişkenler
41) Ruby'de bir bloğu nasıl ilan edebileceğinizi açıklayın?
Ruby'de bloktaki kod her zaman parantez ({}) içine alınır. “Verim bildirimi”ni kullanarak bir bloğu çağırabilirsiniz.
42) put ve putc ifadeleri arasındaki farkın ne olduğunu açıklayın?
Dizenin tamamını ekrana çıkaran puts ifadesinin aksine. Putc ifadesi bir kerede bir karakter çıktısı almak için kullanılabilir.
43) Ruby'de sınıf kütüphanesinin ne olduğunu açıklayın?
Ruby sınıfı kitaplıkları, iş parçacığı programlama, veri türleri, çeşitli alanlar vb. gibi çeşitli alanlardan oluşur. Bu sınıflar, yüksek düzeyde soyutlamada esnek yetenekler sağlayarak size çeşitli problemlerde yararlı olan güçlü Ruby komut dosyaları oluşturma yeteneği verir. alanlar. İlgili sınıf kitaplıklarına sahip olan aşağıdaki alanlar şunlardır:
- GUI programlama
- Ağ programlama
- CGI Programlama
- Metin işleme
44) Ruby'de tanımlanan operatör açıklanıyor mu?
Tanımlanan operatör, iletilen bir ifadenin tanımlı olup olmadığını belirtir. İfade tanımlanmamışsa null değerini verir, ifade tanımlanmışsa açıklama dizesini döndürür.
45) Bu iki değişkenin kapsam farkının ne olduğundan bahsedin: @@name ve @name?
Bu iki değişkenin kapsam farkı şudur:
- @@name bir sınıf değişkenidir
- @name bir örnek değişkendir
46) Ruby Collect Iterator'ın sözdiziminin ne olduğundan bahsedin.
Ruby Collect Iterator koleksiyonunun sözdizimi = koleksiyon.collect.
47) Ruby kodunda, genellikle kodlayıcının aşağıdaki gibi bir ifadeyi kullanarak kısa el formunu kullandığı gözlemlenir: diziarray.map { |element| yerine .map(&:method_name) element.method_name }. Bu numara aslında nasıl çalışıyor?
Bir parametrenin önüne “&” konularak iletildiğinde. Ruby, blok olarak kullanılabilir hale getirmek amacıyla to_proc'u çağıracaktır. Dolayısıyla to_Proc sembolü, kendisine iletilen her ne olursa olsun karşılık gelen ismin yöntemini çağıracaktır. Böylece kısa yol numaramızın işe yaramasına yardımcı oluyoruz.
48) Ruby'de İnterpolasyon nedir açıklayınız?
Ruby Enterpolasyonu, bir dizeyi değişmez değere ekleme işlemidir. {} açık ve kapalı parantez içine bir Karma (#) yerleştirilerek, bir dizenin değişmez değere enterpolasyonu yapılabilir.
49) Ruby'de sınıf değişkenlerini belirtmek için kullanılan Gösterimin ne olduğundan bahsedin?
Ruby'de,
- Bir sabit büyük harfle başlamalı ve bir yöntemin içinde tanımlanmamalıdır.
- Yerel, _ alt çizgi işaretiyle veya küçük harfle başlamalıdır
- Global bir değişken $ işaretiyle başlamalıdır. Başlatılmamış bir global "nil" değerine sahiptir ve yükseltmek bir uyarı. Programın herhangi bir yerine başvurulabilir.
- Bir sınıf değişkeni double @@ ile başlamalı ve bir yöntem tanımında kullanılmadan önce ilk olarak başlatılmalıdır.
50) Proc'lar ve Bloklar arasındaki farkın ne olduğundan bahsedin?
Proc'lar ve Bloklar arasındaki fark,
- Blok, bir yöntemin sözdiziminin yalnızca bir parçasıdır, proc ise bir bloğun özelliklerine sahiptir
- Proc'lar nesnelerdir, bloklar değildir
- Bir argüman listesinde en fazla bir blok görünebilir
- Proc yapabilirken yalnızca blok bir değişkende saklanamaz
51) Tek tırnak ile çift tırnak arasındaki farkın ne olduğundan bahsedin.
Tek tırnaklı dizeler ASCII çıkış kodlarını işlemez ve dize enterpolasyonu yapmazlar.
52) Ruby'de gem ile eklenti arasındaki farkın ne olduğundan bahsedin.
- Mücevher: Bir mücevher sadece bir yakut kodudur. Bir makineye kurulur ve o makinede çalışan tüm Ruby uygulamaları için kullanılabilir.
- Eklenti: Eklenti de ruby kodudur, ancak uygulama klasörüne yüklenir ve yalnızca söz konusu uygulama için kullanılabilir.
53) Extend ve include arasındaki farkın ne olduğundan bahsedin.
"Include", modülün yöntemlerini bir sınıf örneği için kullanılabilir hale getirirken, "extend" bu yöntemleri sınıfın kendisi için kullanılabilir hale getirir.
Bu mülakat soruları aynı zamanda yaşamınızda da yardımcı olacaktır.
Verim fonksiyon değildir. Bloğu yürütmek için kullanılan Ruby anahtar sözcüğüdür.
Özellikle verim, iş parçacığının kontrolünü (büyük olasılıkla Main.thread) bir parametre olarak açıkça iletilen bloğa, yani def my_method(&my_block) veya alternatif olarak, bir blok örtülü olarak aşağıdaki gibi iletilebilir.
my_class.my_method yap
Bu bloktaki # kod, çağıran yöntemin içinde gösterilecek
son
çok güzel… böyle devam et
Harika içerik!
6. soruda Ruby'de “Boolean” sınıfı yok, dolayısıyla “Boolean tipi” de yok. Yalnızca TrueClass ve FalseClass var.
Güncellendi.
İyi
Tercih Etmenizin
aslında Thread.main… benim hatam :)
Ruby, Python'dan ilham almamıştır. Aşağıdakilerden ilham almıştır (Perl, Smalltalk, Eiffel, Ada, BASIC ve Lisp)
Güncellendi.
Evet…
Yakut ve raylara güzel bir bakış
6) nil.object_id 8'e eşittir