Я пытаюсь исправить существующий ActiveRecord Observer; в частности, IssueObserver из кодовой базы Redmine 1.0.4.
В плагине init.rb
я включил файл *patch.rb
:
require File.join(File.dirname(__FILE__), 'lib/issue_observer_patch.rb')
IssueObserver.send :include, IssueObserverPatch
Это делается вне блока Redmine::Plugin.register
.
Модуль делает что-то вроде:
module IssueObserverPatch
def self.included(base)
base.send :alias_method_chain, :after_create, :audit
end
def after_create_with_audit(issue)
after_create_without_audit(issue)
issue.logger.info('***'*50)
# Insert a new Audit instance.
end
end
Однако, когда я запускаю сервер (используя script/server
, который использует Mongrel), патч, кажется, ничего не делает. Строка ***..***
не регистрируется, когда я создаю новую задачу.
Изменив IssueObserver
и включив предложение для регистрации события after_create, а затем запустив сервер и создав проблему; Я вижу этот лог, но не лог метода after_create_with_audit
.
Есть ли правильный способ исправить ActiveRecord Observer?