在运行时使用虚拟属性扩充Rails模型

时间:2010-12-14 22:49:38

标签: ruby-on-rails model ruby-on-rails-3

我有一个带有属性X,Y,Z的Rails模型

我想在数据提取期间动态地将属性P,Q添加到此模型。属性P,Q不需要任何持久性,仅用于前端操作。

这有可能吗?我可以通过将P,Q存储在另一个对象中并与原始模型一起操作来实现这一点,但是想到这里问什么是最好的方法。

[rails 2.3.5,ruby 1.8,7]

1 个答案:

答案 0 :(得分:0)

在你的模特中试试这样的东西

def p
  @p || @p = fetch_p
end

这将允许您调用your_model.p。在第一次调用时,它将调用fetch_p函数并将其存储为类属性。在任何后续调用中,它只会返回缓存的值。