如何管理多个模型的重复方法?

时间:2011-06-24 18:56:10

标签: ruby-on-rails

例如,我希望有一个方法名称'owner',它返回文章的所有者或对两个模型,Article和Comment进行评论。 而不是添加

def owner
    user
end

对于每个模型,有没有办法用1种方法管理多个模型?

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题:

  1. 包含一个模块,其中包含每个模型中的方法

  2. 将实例方法添加到ActiveRecord Base

  3. 添加method_missing或多或少与上述相同的原则,但更多hacky

  4. 1的优点是它只在你想要的模型中包含方法,但是你必须包含一行......

    2& 2的优点3是你不需要包含模块,但每个模型都会拥有它,即使不相关。