Saya sudah menjadi anak yang buruk dan menggunakan sintaks berikut di templat parsial saya untuk menetapkan nilai default untuk variabel lokal jika nilai tidak didefinisikan secara eksplisit di: hash lokal saat rendering parsial -
<% foo = default_value unless (defined? foo) %>
Ini tampaknya berfungsi dengan baik sampai saat ini, ketika (tanpa alasan saya bisa membedakan) variabel-variabel yang tidak lulus mulai berperilaku seolah-olah mereka telah didefinisikan nihil (daripada tidak terdefinisi).
Seperti yang telah ditunjukkan oleh berbagai orang yang membantu di SO, http://api.rubyonrails.org/classes/ActionView/Base.html mengatakan tidak menggunakan
defined? foo
dan bukannya digunakan
local_assigns.has_key? :foo
Saya mencoba mengubah cara saya, tetapi itu berarti mengubah banyak template.
Bisakah / haruskah saya mengisi daya ke depan dan membuat perubahan di semua templat? Apakah ada trik yang harus saya perhatikan? Seberapa rajin saya perlu menguji masing-masing?