Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何管理多个模型的重复方法?_Ruby On Rails - Fatal编程技术网

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

Ruby on rails 如何管理多个模型的重复方法?,ruby-on-rails,Ruby On Rails,例如,我希望有一个方法名“owner”,它返回两个模型的文章或注释的所有者,即文章和注释。 而不是增加 def owner user end 对于每个模型,是否有一种方法可以使用一种方法管理多个模型?有几种方法可以处理此问题: 在每个模型中包含包含方法的模块 将实例方法添加到ActiveRecordBase 添加一个方法\u missing,该方法或多或少与上面的原理相同,但有点粗糙 1的优点是它只在你想要的模型中包含方法,但你必须包含一行 2和3的优点是,您不需要包含模块,但每个模型

例如,我希望有一个方法名“owner”,它返回两个模型的文章或注释的所有者,即文章和注释。 而不是增加

def owner
    user
end

对于每个模型,是否有一种方法可以使用一种方法管理多个模型?

有几种方法可以处理此问题:

  • 在每个模型中包含包含方法的模块

  • 将实例方法添加到
    ActiveRecord
    Base

  • 添加一个
    方法\u missing
    ,该方法或多或少与上面的原理相同,但有点粗糙

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


    2和3的优点是,您不需要包含模块,但每个模型都会包含模块,即使不相关。

    如果您特别想添加此方法,则将您的关联重命名为所有者而不是用户可能更有意义。或者“作者”和“评论者”