экземпляр класса, вы можете сделать это.
аюсь переопределить динамически сгенерированный метод, включая модуль.
В приведенном ниже примере ассоциация Ripple добавляетrows=
Способ к табл. Я хочу вызвать этот метод, но потом сделаю еще кое-что.
Я создал модуль для переопределения метода, думая, что модульrow=
сможет позвонитьsuper
использовать существующий метод.
class Table
# Ripple association - creates rows= method
many :rows, :class_name => Table::Row
# Hacky first attempt to use the dynamically-created
# method and also do additional stuff - I would actually
# move this code elsewhere if it worked
module RowNormalizer
def rows=(*args)
rows = super
rows.map!(&:normalize_prior_year)
end
end
include RowNormalizer
end
Тем не менее, мой новыйrows=
никогда не вызывается, о чем свидетельствует тот факт, что если я возьму исключение внутри него, ничего не произойдет.
Я знаю, что модуль включается, потому что, если я добавлю это, мое исключение будет повышено.
included do
raise 'I got included, woo!'
end
Кроме того, если вместоrows=
модуль определяетsomethingelse=
этот метод вызывается.
Почему мой метод модуля не перекрывает динамически генерируемый?