在我的 Rails 应用程序中,我需要一个包装 ActiveRecord 对象并禁用其所有设置器的类。其他方法应委托给内部对象。
例子:
class Person < ActiveRecord::Base
attr_accessible :name, :age
def adult?
age >= 18
end
end
class PersonWrapper
def initialize(person)
@person = person
end
end
person = Person.new(name: "John", age: 12)
wrapper = PersonWrapper.new(Person)
wrapper.age # => 12
wrapper.adult? # => false
wrapper.age = 123 # error
除此之外还有什么方便的方法method_missing
吗?