我想扩展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/initializers
或lib
文件夹(在这种情况下,您需要将其包含在ApplicationController
中)。
您有时会看到将实例方法委托给类的习惯用法是:
delegate :table_name, :to => 'self'