Halaman Error Lebih Baik dengan Gem better_errors di Rails

Apr 21, 2025 - whdzera

Halo! Saat kalian mengembangkan web dengan Rails, tampilan error default seringkali terasa kurang spesifik error nya ada dimana. Untuk pengalaman debugging yang lebih baik, kita bisa menggunakan gem better_errors.

Dengan gem ini, halaman error akan jauh lebih interaktif, lengkap dengan stack trace, preview variabel, hingga akses konsol Rails langsung dari browser.

Berikut adalah cara penggunaan better_errors


1. Tambahkan Gem ke Gemfile

Buka file Gemfile lalu tambahkan:

group :development do
  gem 'better_errors'
  gem 'binding_of_caller'
end

binding_of_caller opsional tapi sangat disarankan, karena memungkinkan kita membuka IRB console langsung di halaman error.

2. Install Dependensi

Jalankan perintah:

bundle install

3. Konfigurasi (Opsional)

Secara default, better_errors hanya aktif di environment development.
Kalau kamu ingin mengakses error page ini dari mesin lain (misalnya di jaringan lokal), tambahkan konfigurasi di config/environments/development.rb:

BetterErrors::Middleware.allow_ip! "0.0.0.0/0"

Hati-hati! Jangan mengaktifkan ini di production, karena bisa di eksploitasi orang jahat.

4. Coba Trigger Error

Untuk menguji, buat error sederhana di salah satu controller:

def index
  raise "Test Better Errors"
end

Akses halaman tersebut, maka kamu akan melihat tampilan error yang jauh lebih informatif dibandingkan default Rails.

5. Fitur Utama

  • Tampilan error dengan syntax highlight.
  • Stack trace yang bisa diklik dan ditelusuri.
  • Preview nilai variabel di setiap level stack.
  • IRB console langsung di browser (butuh binding_of_caller).

Bagaimana? mudah bukan. Menggunakan better_errors membuat debugging di Rails jauh lebih cepat dan menyenangkan.
Dengan informasi error yang lebih jelas, kita bisa lebih mudah menemukan dan memperbaiki bug.

Kalau kamu sering bekerja dengan Rails, gem ini adalah salah satu yang wajib dipasang di environment development. jika ada yang ditanyakan kalian bisa tulis di komentar.