53 Pertanyaan dan Jawaban Wawancara Ruby on Rails Teratas (2025)
Berikut adalah pertanyaan dan jawaban wawancara Ruby on Rails untuk kandidat pengembang Ruby yang baru dan berpengalaman untuk mendapatkan pekerjaan impian mereka.
1) Jelaskan apa itu Ruby on Rails?
- Ruby: Ini adalah bahasa pemrograman berorientasi objek yang terinspirasi oleh PERL, Smalltalk, Eiffel, Ada, Basic, dan Lisp.
- Rel: Ini adalah kerangka kerja yang digunakan untuk membangun aplikasi web
2) Jelaskan apa itu perpustakaan kelas di Ruby?
Pustaka kelas di Ruby terdiri dari berbagai domain, seperti tipe data, pemrograman thread, berbagai domain, dll.
Unduh PDF Gratis: Pertanyaan & Jawaban Wawancara Ruby on Rails
3) Sebutkan apa konvensi penamaan di Rails?
- Variabel: Untuk mendeklarasikan Variabel, semua huruf menggunakan huruf kecil, dan kata dipisahkan dengan garis bawah
- Kelas dan Modul: Modul dan Kelas menggunakan MixedCase dan tidak memiliki garis bawah; setiap kata dimulai dengan huruf besar
- Tabel Basis Data: Nama tabel database harus menggunakan huruf kecil dan garis bawah di antara kata-katanya, dan semua nama tabel harus dalam bentuk jamak misalnya invoice_items
- Model: Itu diwakili oleh MixedCase yang tidak terputus dan selalu berbentuk tunggal dengan nama tabel
- Controller: Nama kelas pengontrol direpresentasikan dalam bentuk jamak, sehingga OrdersController akan menjadi pengontrol untuk tabel pesanan.
4) Jelaskan apa itu “Hasil” di Ruby on Rails?
Metode Ruby yang menerima blok kode akan memanggilnya dengan “Yield”.
5) Jelaskan apa itu ORM (Object-Relationship-Model) di Rails?
ORM atau Model Hubungan Objek di Rails menunjukkan bahwa kelas Anda dipetakan ke tabel di database, dan objek langsung dipetakan ke baris dalam tabel.
6) Sebutkan apa perbedaan antara false dan nil di Ruby?
Di Ruby, false adalah objek FalseClass yang mewakili nilai boolean, sedangkan Nil adalah objek NilClass yang menunjukkan tidak adanya nilai. Ini memiliki objek_id 4.
7) Sebutkan apa saja aspek positif dari Rails?
Rails menyediakan banyak fitur seperti
- Pemrograman meta: Rails menggunakan pembuatan kode tetapi untuk pekerjaan berat, Rails bergantung pada pemrograman meta. Ruby dianggap sebagai salah satu bahasa terbaik untuk pemrograman Meta.
- Catatan Aktif: Ini menyimpan objek ke database melalui Active Record Framework. Rekaman Aktif versi Rails mengidentifikasi kolom dalam skema dan secara otomatis mengikatnya ke objek domain Anda menggunakan metaprogramming
- Perancah: Rails memiliki kemampuan untuk membuat scaffolding atau kode sementara secara otomatis
- Konvensi mengenai konfigurasi: Tidak seperti kerangka pengembangan lainnya, Rails tidak memerlukan banyak konfigurasi, jika Anda mengikuti konvensi penamaan dengan cermat
- Tiga lingkungan: Rails hadir dengan tiga pengujian lingkungan default, pengembangan, dan produksi.
- Pengujian bawaan: Ini mendukung kode yang disebut harness dan perlengkapan yang membuat kasus uji ditulis dan dieksekusi.
8) Jelaskan apa peran subdirektori app/controllers dan app/helpers?
- Aplikasi/pengendali: Permintaan web dari pengguna ditangani oleh Pengontrol. Subdirektori pengontrol adalah tempat Rails mencari kelas pengontrol
- Aplikasi/pembantu: Subdirektori pembantu menampung semua kelas pembantu yang digunakan untuk membantu kelas tampilan, model, dan pengontrol.
9) Sebutkan apa perbedaan antara String dan Simbol?
Mereka berdua bertindak dengan cara yang sama hanya saja mereka berbeda dalam perilaku mereka yang berlawanan satu sama lain. Perbedaannya terletak pada object_id, memori dan proses tune ketika digunakan bersama-sama. Simbol termasuk dalam kategori objek yang tidak dapat diubah sedangkan String dianggap sebagai objek yang dapat berubah.
10) Jelaskan perbedaan Simbol dengan variabel?
Simbol berbeda dari variabel dalam aspek berikut
- Ini lebih seperti string daripada variabel
- Di Ruby, string bisa berubah tetapi Simbol tidak bisa diubah
- Hanya satu salinan simbol yang perlu dibuat
- Simbol sering digunakan sebagai korespondensi dengan enum di Ruby
11) Jelaskan apa itu Rails Active Record di Ruby on Rails?
Catatan aktif Rails adalah lapisan Object/Relational Mapping (ORM) yang disertakan dengan Rails. Ini mengikuti model ORM standar sebagai
- Peta tabel ke kelas
- Baris dipetakan ke objek
- Kolom dipetakan ke atribut objek
12) Jelaskan bagaimana Rails mengimplementasikan Ajax?
Halaman web yang didukung Ajax mengambil halaman web dari server yang baru atau diubah tidak seperti halaman web lain di mana Anda harus menyegarkan halaman untuk mendapatkan informasi terbaru.
Rails memicu Operasi Ajax dengan cara berikut
- Beberapa pemicu kebakaran: Pemicunya bisa berupa pengguna mengklik tautan atau tombol, pengguna menyebabkan perubahan pada data di bidang atau formulir
- Klien web memanggil server: Metode skrip Java, XMLHttpRequest, mengirimkan data yang ditautkan dengan pemicu ke pengendali tindakan di server. Datanya mungkin berupa ID kotak centang, keseluruhan formulir, atau teks di kolom entri
- Server melakukan proses: Penangan tindakan sisi server melakukan sesuatu dengan data dan mengambil HTML fragmen ke klien web
- Klien menerima tanggapan: JavaScript sisi klien, yang dihasilkan Rails secara otomatis, menerima fragmen HTML dan menggunakannya untuk memperbarui bagian tertentu saat ini
13) Sebutkan bagaimana cara membuat pengontrol untuk subjek?
Untuk membuat pengontrol subjek Anda dapat menggunakan perintah berikut
C:\ruby\library> skrip ruby/buat subjek pengontrol
14) Sebutkan apa itu Migrasi Rails?
Rails Migration memungkinkan Ruby untuk membuat perubahan pada skema database, sehingga memungkinkan untuk menggunakan sistem kontrol versi agar segala sesuatunya tetap tersinkronisasi dengan kode sebenarnya.
15) Sebutkan apa yang dapat dilakukan Rails Migration?
Migrasi Rails dapat melakukan hal-hal berikut
- Buat tabel
- Jatuhkan meja
- Ganti nama tabel
- Tambahkan kolom
- Ganti nama kolom
- Ubah kolom
- Hapus kolom dan sebagainya
16) Sebutkan apa perintah untuk membuat migrasi?
Untuk membuat perintah migrasi disertakan
C:\ruby\application>skrip Ruby/buat nama_tabel migrasi
17) Jelaskan kapan metode self.up dan self.down digunakan?
Saat bermigrasi ke versi baru, diri.up metode digunakan sementara diri.turun metode ini digunakan untuk mengembalikan perubahan saya jika diperlukan.
18) Sebutkan apa peran Rails Controller?
Pengontrol Rails adalah pusat logis dari aplikasi. Ini memfasilitasi interaksi antara pengguna, tampilan, dan model. Ia juga melakukan aktivitas lain seperti
- Ia mampu merutekan permintaan eksternal ke tindakan internal. Ini menangani URL dengan sangat baik
- Ini mengatur modul pembantu, yang memperluas kemampuan templat tampilan tanpa membuat kodenya menjadi besar
- Ini mengatur sesi; yang memberikan kesan kepada pengguna tentang interaksi berkelanjutan dengan aplikasi kami
19) Sebutkan apa perbedaan antara “HashWithIndifferent” dukungan aktif dan “Hash” Ruby?
The Hash kelas di perpustakaan inti Ruby mengembalikan nilai dengan menggunakan standar “= =” perbandingan pada tombol. Artinya nilai yang disimpan untuk a simbol kunci tidak dapat diambil menggunakan string yang setara. Selagi HashDenganIndifferentAccess memperlakukan kunci Simbol dan kunci String sebagai setara.
20) Jelaskan apa itu Pemalsuan Permintaan Lintas Situs (CSRF) dan bagaimana Rails dilindungi terhadapnya?
CSRF adalah bentuk serangan di mana peretas mengirimkan permintaan halaman atas nama Anda ke situs web lain, menyebabkan kerusakan atau mengungkap data sensitif Anda. Untuk melindungi dari serangan CSRF, Anda harus menambahkan “lindungi_dari_pemalsuan” untuk Anda Pengontrol Aplikasi. Hal ini akan menyebabkan Rails memerlukan token CSRF untuk memproses permintaan. Token CSRF diberikan sebagai bidang tersembunyi di setiap formulir yang dibuat menggunakan pembuat formulir Rails.
21) Jelaskan apa itu Mixin di Rails?
Mixin di Ruby menawarkan alternatif untuk banyak warisan, menggunakan modul mixin yang dapat diimpor ke dalam kelas lain.
22) Jelaskan bagaimana Anda mendefinisikan Variabel Instance, Variabel Global, dan Variabel Kelas di Ruby?
- Variabel Instance Ruby dimulai dengan — @
- Variabel Kelas Ruby dimulai dengan — @@
- Variabel Ruby Global dimulai dengan — $
23) Jelaskan bagaimana Anda dapat menjalankan aplikasi Rails tanpa membuat database?
Anda dapat menjalankan aplikasi Anda dengan menghapus komentar pada baris di environment.rb
jalur=> jalur akar conf/environment.rb
config.frameworks = [ action_web_service, :action_mailer, :active_record]
24) Sebutkan apa perbedaan antara Observer dan Callback di Ruby on Rails?
- Pengamat Rel: Pengamat sama dengan Callback, tetapi digunakan ketika metode tidak terkait langsung dengan siklus hidup objek. Selain itu, pengamatnya hidup lebih lama, dan dapat dilepas atau dipasang kapan saja. Misalnya, menampilkan nilai dari model di UI dan memperbarui model dari masukan pengguna.
- Panggilan Balik Rel: Callback adalah metode yang dapat dipanggil pada saat-saat tertentu dalam siklus hidup suatu objek, misalnya dapat dipanggil ketika suatu objek divalidasi, dibuat, diperbarui, dihapus. Panggilan balik hanya berlangsung singkat. Misalnya, menjalankan thread dan memberikan panggilan balik yang dipanggil ketika thread berakhir
25) Jelaskan apa itu rake in Rails?
Rake adalah Merek Ruby; ini adalah utilitas Ruby yang menggantikan utilitas Unix 'make', dan menggunakan 'Rakefile' dan '.rake files' untuk membuat daftar tugas. Di Rails, Rake digunakan untuk tugas administrasi normal seperti memigrasi database melalui skrip, memuat skema ke dalam database, dll.
26) Jelaskan bagaimana Anda dapat membuat daftar semua rute untuk suatu aplikasi?
Untuk membuat daftar semua rute untuk suatu aplikasi, Anda dapat menulis rute rake di terminal.
27) Jelaskan apa yang dimaksud dengan penyapu di Rails?
Sweeper bertanggung jawab atas kedaluwarsa atau penghentian cache ketika objek model berubah.
28) Sebutkan log yang harus dilihat untuk melaporkan kesalahan di Ruby Rails?
Rails akan melaporkan kesalahan dari Apache di log/Apache.log dan kesalahan dari kode Ruby di log/development.log.
29) Jelaskan apa perbedaan antara Scaffolding Dinamis dan Statis?
Perancah Dinamis | Perancah Statis |
|
|
30) Sebutkan apa fungsi pengumpulan sampah di Ruby on Rails?
Fungsi pengumpulan sampah di Ruby on Rails antara lain
- Ini memungkinkan penghapusan nilai penunjuk yang tertinggal saat eksekusi program berakhir
- Ini membebaskan pemrogram dari melacak objek yang dibuat secara dinamis saat runtime
- Ini memberikan keuntungan dengan menghapus objek yang tidak dapat diakses dari memori, dan memungkinkan proses lain menggunakan memori
31) Sebutkan apa perbedaan antara redirect dan render di Ruby on Rails?
- Redirect adalah metode yang digunakan untuk mengeluarkan pesan kesalahan jika halaman tidak dikeluarkan atau ditemukan di browser. Ini memberitahu browser untuk memproses dan mengeluarkan permintaan baru.
- Render adalah metode yang digunakan untuk membuat konten. Render hanya berfungsi ketika pengontrol dikonfigurasi dengan benar dengan variabel yang perlu dirender.
32) Sebutkan apa tujuan RJ di Rails?
RJs adalah templat yang menghasilkan JavaScript yang dijalankan di blok eval oleh browser sebagai respons terhadap permintaan AJAX. Terkadang digunakan untuk mendefinisikan JavaScript, Prototipe, dan pembantu yang disediakan oleh Rails.
33) Jelaskan apa itu Asosiasi Polimorfik di Ruby on Rails?
Asosiasi Polimorfik memungkinkan objek ActiveRecord dihubungkan dengan beberapa objek ActiveRecord. Contoh sempurna dari Asosiasi Polimorfik adalah situs sosial di mana pengguna dapat berkomentar di mana saja baik itu video, foto, tautan, pembaruan status, dll. Tidak mungkin jika Anda harus membuat komentar individual seperti photos_comments, videos_comment, dan seterusnya. .
34) Sebutkan apa saja batasan Ruby on Rails?
Ruby on Rails telah dirancang untuk membuat aplikasi web CRUD menggunakan MVC. Hal ini mungkin membuat Rails tidak berguna bagi pemrogram lain. Beberapa fitur yang tidak didukung Rails antara lain
- Kunci asing dalam database
- Menghubungkan ke beberapa database sekaligus
- Layanan web sabun
- Koneksi ke beberapa server basis data sekaligus
35) Sebutkan apa perbedaan antara panggilan super() dan panggilan super?
- super(): Panggilan ke super() memanggil metode induk tanpa argumen apa pun, seperti yang diharapkan. Seperti biasa, bersikap eksplisit dalam kode Anda adalah hal yang baik.
- panggilan super: Panggilan ke super memanggil metode induk dengan argumen yang sama yang diteruskan ke metode anak. Oleh karena itu, kesalahan akan terjadi jika argumen yang diteruskan ke metode anak tidak sesuai dengan yang diharapkan induknya.
36) Jelaskan tentang Dig, Float dan Max?
- Kelas float digunakan setiap kali fungsi berubah secara konstan.
- Dig digunakan kapan pun Anda ingin merepresentasikan float dalam angka desimal.
- Max digunakan setiap kali ada kebutuhan Float yang sangat besar.
37) Jelaskan bagaimana kita mendefinisikan ekspresi reguler Ruby?
Ekspresi reguler Ruby adalah rangkaian karakter khusus yang membantu Anda mencocokkan atau menemukan string lain. Literal ekspresi reguler adalah pola antara pembatas sembarang atau garis miring yang diikuti oleh %r.
38) Jelaskan apa yang dimaksud dengan operator yang didefinisikan?
Tentukan status operator apakah ekspresi yang diteruskan ditentukan atau tidak. Jika ekspresi didefinisikan, ia mengembalikan string deskripsi dan jika tidak didefinisikan, ia mengembalikan nilai nol.
39) Sebutkan beberapa fitur Ruby?
- Format bebas – Anda dapat mulai menulis dari program dari baris dan kolom mana pun
- Peka huruf besar/kecil – Huruf besar dan kecil berbeda
- Komentar – Apa pun yang diikuti dengan tanda kutip #, sampai akhir baris yang muncul, diabaikan oleh penerjemah
- Pembatas pernyataan- Beberapa pernyataan dalam satu baris harus dipisahkan dengan titik koma, tetapi pernyataan tersebut tidak diperlukan di akhir baris.
40) Sebutkan jenis variabel yang tersedia di Kelas Ruby?
Jenis variabel yang tersedia di Kelas Ruby adalah,
- Variabel Lokal
- Variabel Global
- Variabel Kelas
- Variabel Instance
41) Jelaskan bagaimana Anda mendeklarasikan blok di Ruby?
Di Ruby, kode dalam blok selalu diapit kurung kurawal ({}). Anda dapat menjalankan blok dengan menggunakan "pernyataan hasil".
42) Jelaskan apa perbedaan antara pernyataan put dan putc?
Berbeda dengan pernyataan putting yang menampilkan seluruh string ke layar. Pernyataan Putc dapat digunakan untuk mengeluarkan satu karakter dalam satu waktu.
43) Jelaskan apa itu perpustakaan kelas di Ruby?
Pustaka kelas Ruby terdiri dari berbagai domain, seperti pemrograman thread, tipe data, berbagai domain, dll. Kelas-kelas ini memberikan kemampuan fleksibel pada abstraksi tingkat tinggi, memberi Anda kemampuan untuk membuat skrip Ruby yang kuat yang berguna dalam berbagai masalah domain. Domain berikut yang memiliki perpustakaan kelas yang relevan adalah,
- Pemrograman GUI
- Pemrograman jaringan
- Pemrograman CGI
- Pemrosesan teks
44) Di Ruby, dijelaskan tentang operator yang ditentukan?
Operator yang ditentukan memberi tahu apakah ekspresi yang diteruskan ditentukan atau tidak. Jika ekspresi tidak didefinisikan, ia memberikan null, dan jika ekspresi didefinisikan, ia mengembalikan string deskripsi.
45) Sebutkan perbedaan cakupan kedua variabel ini: @@nama dan @nama?
Perbedaan cakupan kedua variabel ini adalah:
- @@name adalah variabel kelas
- @name adalah variabel instan
46) Sebutkan apa sintaks untuk Ruby mengumpulkan Iterator?
Sintaks untuk Ruby mengumpulkan Iterator collection = collection.collect.
47) Dalam kode Ruby, sering kali terlihat bahwa pembuat kode menggunakan bentuk singkat penggunaan ekspresi seperti susunan.map(&:method_name) alih-alih array.map { |elemen| elemen.metode_nama }. Bagaimana sebenarnya trik ini bekerja?
Ketika sebuah parameter dilewatkan dengan “&” di depannya. Ruby akan memanggil to_proc dalam upaya membuatnya dapat digunakan sebagai blok. Jadi, simbol to_Proc akan memanggil metode dengan nama yang sesuai pada apa pun yang diteruskan ke sana. Dengan demikian membantu trik steno kami berhasil.
48) Jelaskan apa itu Interpolasi di Ruby?
Interpolasi Ruby adalah proses memasukkan string ke dalam literal. Dengan menempatkan Hash (#) di dalam tanda kurung buka dan tutup {}, seseorang bisa menginterpolasi string ke dalam literal.
49) Sebutkan Notasi apa yang digunakan untuk menunjukkan variabel kelas di Ruby?
Di Ruby,
- Konstanta harus dimulai dengan huruf besar, dan tidak boleh didefinisikan di dalam suatu metode
- Lokal harus dimulai dengan tanda _ garis bawah atau huruf kecil
- Variabel global harus dimulai dengan tanda $. Global yang tidak diinisialisasi memiliki nilai "nihil" dan memang seharusnya demikian menaikkan sebuah peringatan. Itu dapat dirujuk ke mana saja dalam program.
- Variabel kelas harus dimulai dengan double @@ dan harus diinisialisasi terlebih dahulu sebelum digunakan dalam definisi metode
50) Sebutkan apa perbedaan antara Procs dan Blocks?
Perbedaan antara Procs dan Block,
- Blok hanyalah bagian dari sintaks suatu metode sedangkan proc memiliki karakteristik blok
- Procs adalah objek, blok bukan
- Paling banyak satu blok dapat muncul dalam daftar argumen
- Hanya blok yang tidak dapat disimpan ke dalam variabel sedangkan Proc dapat
51) Sebutkan apa perbedaan antara kutipan tunggal dan kutipan ganda?
String yang diberi tanda kutip tunggal tidak memproses kode escape ASCII, dan tidak melakukan interpolasi string.
52) Sebutkan apa perbedaan antara permata dan plugin di Ruby?
- Permata: Permata hanyalah kode rubi. Itu diinstal pada mesin, dan tersedia untuk semua aplikasi Ruby yang berjalan pada mesin itu.
- Plugin: Plugin juga merupakan kode Ruby, tetapi dipasang di folder aplikasi dan hanya tersedia untuk aplikasi spesifik tersebut.
53) Sebutkan apa bedanya extend dan include?
Kata “include” membuat metode modul tersedia untuk instance kelas, sedangkan “extend” membuat metode ini tersedia untuk kelas itu sendiri.
Pertanyaan wawancara ini juga akan membantu dalam viva Anda (lisan)
Hasil tidak berfungsi. Kata kunci ruby yang digunakan untuk mengeksekusi blok.
Secara khusus, hasil akan meneruskan kontrol thread (Kemungkinan besar Main.thread) ke blok yang diteruskan secara eksplisit sebagai parameter yaitu def my_method(&my_block) Atau sebagai alternatif, sebuah blok dapat diteruskan secara implisit seperti
kelas_saya.metode_saya lakukan
# kode di blok ini akan dimasukkan ke dalam metode pemanggilan
akhir
sangat bagus… pertahankan
Konten yang bagus!
pada pertanyaan #6, di Ruby, tidak ada kelas “Boolean”, oleh karena itu tidak ada “tipe Boolean”. Hanya ada TrueClass dan FalseClass.
Itu diperbarui.
baik
baik
sebenarnya Thread.main… salahku :)
Ruby tidak terinspirasi oleh Python, Ia terinspirasi oleh yang berikut ini (Perl, Smalltalk, Eiffel, Ada, BASIC, dan Lisp)
Itu diperbarui.
Ya…
Sekilas tentang batu delima dan rel
6) nil.object_id sama dengan 8