Ruby:如何向Object添加方法? (或简单地扩展对象类)

时间:2011-08-10 18:03:08

标签: ruby-on-rails ruby monkeypatching

我想扩展Object以添加一些方法。

所以我可以@object.table_name而不是@object.class.name.tableize

和类似的事情一样。

我正在使用Ruby 1.8.7和Rails 2.3.8,所以也许这类东西会作为模块进入lib文件夹?我不知道。

2 个答案:

答案 0 :(得分:4)

# object.rb
class Object
  def table_name
    self.class.name.tableize
  end
end

将其放入/config/initializerslib文件夹(在这种情况下,您需要将其包含在ApplicationController中)。

答案 1 :(得分:1)

您有时会看到将实例方法委托给类的惯用语就是:

delegate :table_name, :to => 'self'