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



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

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

和类似的东西

我使用Ruby 1.8.7和Rails 2.3.8,所以也许这种事情会在lib文件夹作为一个模块?我不知道。

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

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

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

delegate :table_name, :to => 'self'

相关内容

最新更新