Rails:如何在类似于alias_method_chain的情况下修饰属性?

时间:2016-03-16 22:37:25

标签: ruby-on-rails ruby attributes

在rails中,这是一种常见的模式:

def foo_with_feature
  add_feature_to foo_without_feature
end

alias_method_chain :foo, :feature

我想这样做但是有一个属性,其getter方法没有定义,并且会在method_missing的情况下即时完成,请参阅Why alias_method fails in Rails model

如何装饰尚未设置的属性getter?

1 个答案:

答案 0 :(得分:0)

只需直接访问该属性,如下所示:

def fooattr_raw
  self.attributes["fooattr"]
end

def fooattr
  add_feature_to fooattr_raw
end