所有对象使用的方法在哪里?

时间:2012-08-22 00:23:32

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

我正在开发一个rails应用程序,我希望我的所有对象都有一个处理它们的方法。现在,虽然我意识到我可以在每个对象的模型中编写该方法,但我宁愿坚持使用DRY(不要重复自己)理论并将方法放在一个地方。

我可以放置一个方法,让我的所有对象都可以访问吗?

2 个答案:

答案 0 :(得分:3)

Ruby和rails提供了许多选项,具体取决于您希望访问方法的对象。

ChiuBaka的答案是一个选项,但是rails特别提供了许多更具可读性的选项。

如果您正在寻找控制器/视图级别的内容。您只需将其放在app/helpers/application_helper.rb文件中即可。如果要限制访问,可以在同一目录中创建特定于控制器的帮助程序文件。

如果你正在看模特。您只需创建一个继承自activerecord::base的基础模型,在那里实现您的方法,然后让您的模型继承该模型。

class MyBase < ActiveModel::Base
  def myinstancemethod
  end

  def myclassmethod
  end
end

然后

class MyModel < MyBase

end

然后你可以这样打电话

instance = MyModel.new
instance.myinstancemethod

MyModel.myclassmethod

答案 1 :(得分:0)

将您想要的所有模型中的代码放在/ lib文件夹中的模块中,并在模型中使用它。