В приложении RoR я хочу специализировать метод ActiveRecord update_attributes() в одной из моих моделей, извлекая некоторые атрибуты для специальной обработки и передавая остальную часть оригинальному методу update_attributes(). Подробности:
class Premise < ActiveRecord::Base
...
def update_attributes(attrs)
attrs.each_pair do |key, val|
unless has_attribute?(key)
do_special_processing(key, val)
attrs.delete(key)
end
end
# use original update_attributes() to process non-special pairs
super.update_attributes(attrs)
end
...
end
Вызов super.update_attributes (attr) вызывает ошибку:
undefined method `update_attributes' for true:TrueClass
..., что заставляет меня подозревать, что я действительно не понимаю ключевое слово super в Ruby. Что мне не хватает? В частности, как мне вызвать исходный метод update_attributes()?