举个例子:
class Person < ActiveRecord::Base
def name=(name)
super(name.capitalize)
end
def name
super().downcase # not sure why you'd do this; this is just an example
end
end
这似乎是有效的,但是我刚刚阅读了关于在 ActiveRecord: : 基本文档中重写属性方法的部分,它建议使用 read_attribute
和 write_attribute
方法。我认为我在上面的例子中所做的一定有什么问题; 否则,为什么他们会祝福这些方法作为覆盖属性方法的“正确方法”?他们还强加了一个更丑陋的成语,所以一定有很好的理由..。
我真正的问题是: 这个例子有什么问题吗?