ฉันใช้ Ruby on Rails 3.2.2 และฉันต้องการทราบว่าต่อไปนี้เป็นวิธี "ถูกต้อง" / "ถูกต้อง" / "แน่ใจ" เพื่อแทนที่เมธอด setter สำหรับแอตทริบิวต์ class ของฉัน
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self[:attribute_name] = value
end
รหัสข้างต้นดูเหมือนว่าจะทำงานตามที่คาดไว้ แต่ผมอยากจะทราบว่าโดยการใช้รหัสดังกล่าวในอนาคตผมจะมีปัญหาหรืออย่างน้อยสิ่งที่เป็นปัญหา "ผมควรคาดหวัง" / "ที่อาจเกิดขึ้น" กับ Ruby on Rails หากนั่นไม่ใช่วิธีที่ถูกต้องในการแทนที่เมธอด setter วิธีที่ถูกต้องคืออะไร
หมายเหตุ : ถ้าฉันใช้รหัส
attr_accessible :attribute_name
def attribute_name=(value)
... # Some custom operation.
self.attribute_name = value
end
ฉันได้รับข้อผิดพลาดต่อไปนี้:
SystemStackError (stack level too deep):
actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70