假设我们有一个foos
表,其中包含bar
列。现在我们将列重命名为bar_primary
并添加另一个 - bar_secondary
。我们希望将bar
的读/写行为分配给两个属性中的一些。
我希望有类似的东西:
class Foo < ActiveRecord::Base
def bar
read_condition ? bar_primary : bar_secondary
end
def bar=(value)
if write_condition
self.bar_primary = value
else
self.bar_secondary = value
end
end
end
可以做到这一点,不过类似:
foo['bar'] = 'baz'
会打破它。现在我可以实现[]=
,但这已经开始闻起来了。
在这种情况下,我是否有一些不知道可能有用的铁轨?