У меня есть простой класс:
class User
include Mongoid::Document
field :name
end
И я хотел бы снова открыть его, чтобы добавить обратный вызов Mongoid:
class User
before_create :do_this
def do_this
# do it...
end
end
К сожалению, я получил ошибку: undefined method 'before_create' for User:Class
Есть идеи, как это сделать? Стоит ли использовать миксин-паттерн вместо повторного открытия?
ОБНОВЛЕНИЕ : Я не могу изменить исходное определение класса, так как оно находится в общей библиотеке. И порядок загрузки сложен, потому что он в Rails. Исходный класс находится в файле, загруженном в autoload_path
. Где я должен открыть это? И я предпочел бы использовать модуль, а не открывать его, но я не уверен, что возможно включить мой модуль «извне»!
ОБНОВЛЕНИЕ 2 : Вы правы, это просто проблема порядка загрузки. Итак, теперь мой вопрос звучит так: Поскольку автозагрузка Rails ленива, как я могу заставить Rails загружать мой файл повторного открытия после загрузки исходного файла класса? :)