У меня есть класс модели сообщений (который наследуется от ActiveRecord :: Base). Для конкретного развертывания я хотел бы иметь отдельный файл, который изменяет Сообщение, добавляя обратный вызов. Итак, вместо того, чтобы делать:
# app/models/message.rb
class Message < ActiveRecord::Base
before_save :foo
def foo
puts 'foo!'
end
end
Я бы хотел иметь возможность:
# app/models/message.rb
class Message < ActiveRecord::Base
end
# config/initializers/fixes.rb
Message
class Message
before_save :foo
def foo
puts 'foo!'
end
end
Проблема в том, что он работает, когда я запускаю скрипт / консоль, но когда я запускаю его с помощью скрипта / сервера, он обычно этого не делает. Это худшая часть, это не значит, что это никогда не работает. Иногда я запускаю сервер, и он работает, иногда нет, и это без каких-либо изменений в источнике.
Я перезагружаю сам сервер, поскольку (насколько мне известно) инициализаторы запускаются только один раз и не перезагружаются при изменении.
Я знаю, что "иногда" работы очень расплывчаты, но я провел здесь без всякой удачи. Возможно, у кого-то была похожая проблема, или он может предложить другую идею для добавления обратного вызова.