Ruby on rails Ruby:如何向对象添加方法?(或仅扩展对象类)

Ruby on rails Ruby:如何向对象添加方法?(或仅扩展对象类),ruby-on-rails,ruby,monkeypatching,Ruby On Rails,Ruby,Monkeypatching,我想扩展Object以添加一些方法 所以我可以做@object.table\u 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/initializers或lib文

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

所以我可以做
@object.table\u 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/initializers
lib
文件夹中(在这种情况下,您需要将其包含在
ApplicationController
中)


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

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

delegate :table_name, :to => 'self'

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

delegate :table_name, :to => 'self'

另一种方法(只要该方法不存在)是将该方法放入模块中,并将该模块包含在类中。另一种方法(只要该方法不存在)是将该方法放入模块中,
对象
不是要修改的类。
对象
不是要修改的类。