是否有类似于application_helper或application_controller的模型?

时间:2012-01-07 04:31:56

标签: ruby-on-rails

我在每个模型中都使用了一些函数,我想将它们放在像 ActiveRecord::Base 这样的函数中,所以我不需要在所有函数中命名相同的函数我的模特

我甚至不确定这样的事情是否符合最佳做法。也许一些Rails专业人士可以向我展示更好的东西。

2 个答案:

答案 0 :(得分:3)

编写包含所需方法的模块,并根据需要编写include MyModule

您当然可以像@derekerdmann建议的那样,为您的模型创建一个抽象基类:

class MyBaseModel < ActiveRecord::Base
  abstract_class = true

  def my_method(*args)
    #code goes here
  end
end

class MyModel < MyBaseModel

end

不要忘记假设abstract_class = true行或单表继承。

就个人而言,我更喜欢mixin方法,因为如果您的模型在常用功能方面有所不同,您可以将常用功能分组到单独的模块中,并根据需要include

答案 1 :(得分:2)

请记住,您仍然可以在Rails中使用标准的面向对象实践。创建一个使用所有常用功能扩展ActiveRecord::Base的类,然后为每个真正的ActiveRecord模型扩展该类。