Ruby: Как добавить методы в Object? (или просто Расширить класс объекта) - PullRequest
1 голос
/ 10 августа 2011

Я хочу расширить объект, добавив несколько методов.

, чтобы я мог сделать @object.table_name вместо @object.class.name.tableize

и подобные вещи.Я использую Ruby 1.8.7 и Rails 2.3.8, так что, может быть, такого рода вещи поместятся в папку lib как модуль?Я не знаю.

Ответы [ 2 ]

4 голосов
/ 10 августа 2011
# object.rb
class Object
  def table_name
    self.class.name.tableize
  end
end

поместите его в /config/initializers или в папку lib (в этом случае вам нужно включить его в ApplicationController).

1 голос
/ 10 августа 2011

Идиома, которую вы иногда видите для делегирования методов экземпляра классу, это просто:

delegate :table_name, :to => 'self'
...