ฉันเป็นเด็กเลวและใช้ไวยากรณ์ต่อไปนี้ในแม่แบบบางส่วนของฉันเพื่อตั้งค่าเริ่มต้นสำหรับตัวแปรท้องถิ่นหากค่าไม่ได้กำหนดไว้อย่างชัดเจนใน: hash locals เมื่อแสดงบางส่วน -
<% foo = default_value unless (defined? foo) %>
สิ่งนี้ดูเหมือนว่าจะทำงานได้ดีจนกระทั่งเมื่อไม่นานมานี้เมื่อ (โดยไม่มีเหตุผลที่ฉันสามารถแยกแยะได้) ตัวแปรที่ไม่ผ่านก็เริ่มทำตัวราวกับว่าพวกมันถูกกำหนดเป็นศูนย์ (แทนที่จะไม่ได้กำหนด)
ตามที่ได้รับการชี้ให้เห็นจากคนที่เป็นประโยชน์มากมายใน SO http://api.rubyonrails.org/classes/ActionView/Base.htmlกล่าวว่าห้ามใช้
defined? foo
และแทนที่จะใช้
local_assigns.has_key? :foo
ฉันพยายามแก้ไขวิธีการของฉัน แต่นั่นหมายถึงการเปลี่ยนเทมเพลตจำนวนมาก
ฉันสามารถ / ควรชาร์จล่วงหน้าและทำการเปลี่ยนแปลงในแม่แบบทั้งหมดหรือไม่ มีความยุ่งยากใด ๆ ที่ฉันต้องระวังหรือไม่? ฉันจะต้องทดสอบแต่ละคนอย่างขยันขันแข็งแค่ไหน?