Tujuan dari "pertimbangkan_all_requests_local" di config / environment / development.rb?

94

Apa tujuan dari pengaturan konfigurasi Rails ini ...

config.action_controller.consider_all_requests_local = true

Ini disetel ke true secara default di config/environments/development.rb.

Terima kasih,

Ethan

Ethan
sumber
12
Sebagai tambahan: Di rel 3 opsinya adalahconfig.consider_all_requests_local=
mati

Jawaban:

123

Permintaan non-lokal menghasilkan halaman kesalahan yang ramah pengguna. Permintaan lokal, yang diasumsikan berasal dari pengembang, melihat pesan kesalahan yang lebih berguna yang menyertakan nomor baris dan lacak balik. consider_all_requests_localmemungkinkan aplikasi Anda untuk menampilkan pesan ramah pengembang ini bahkan saat mesin membuat permintaan dari jarak jauh.

Gordon Wilson
sumber
8
Pesan kesalahan default Rails hanya sedikit ramah. Ini juga memiliki tujuan lain, yaitu untuk tidak menunjukkan terlalu banyak informasi tentang kesalahan internal kepada pihak luar yang mungkin ingin menggunakan informasi tersebut untuk melawan Anda.
Gordon McCreight
Bisakah ini mengubah status tanggapan dan header? Katakanlah, jika saya mencoba mengembalikan 503tetapi klien menerima 500?
PJSCopeland
4

Di tingkat pengembangan kami menetapkan:

pertimbangkan_all_requests_local set = true

karena pengembang perlu melihat kesalahan penuh yang menampilkan tata letak / tampilan seperti yang Anda lihat pada gambar di bawah ini.

masukkan deskripsi gambar di sini

Tetapi pada tingkat produksi, kami tidak perlu menunjukkan bug pengkodean internal kami jadi kami menetapkan false:

config.consider_all_requests_local = false

masukkan deskripsi gambar di sini

Touseef Murtaza
sumber