1
這是在Redmine 1.3中。Redmine插件需要先修補ApplicationController?
我正在修補ApplicationController以在所有控制器中添加行爲(實際上只是包含助手)。問題是在我的ApplicationController補丁之前修補的任何控制器都沒有得到新的行爲。
這工作得很好:
Dispatcher.to_prepare :my_plugin do
require_dependency 'my_plugin/application_controller_patch'
require_dependency 'my_plugin/welcome_controller_patch'
end
但與此相關,WelcomeController當我打電話,我添加輔助引發錯誤。
Dispatcher.to_prepare :my_plugin do
require_dependency 'my_plugin/welcome_controller_patch'
require_dependency 'my_plugin/application_controller_patch'
end
這是很容易在一個插件中修復,但我遇到的問題是,另一個插件補丁控制器和它隨後失去我的修補程序。更糟的是,這隻發生在生產中 - 在開發中,我認爲插件訂單是不同的,因爲它工作正常。我沒有看到改變插件順序的方法。
我敢肯定我的補丁本身是好的,但萬一它看起來像這樣:
require_dependency 'application_controller'
module MyPlugin::ApplicationControllerPatch
def self.included(base) # :nodoc:
base.extend(ClassMethods)
base.send(:include, InstanceMethods)
base.class_eval do
unloadable
helper :search
include SearchHelper
end
end
module ClassMethods
end
module InstanceMethods
end # of InstanceMethods
end # of module
ApplicationController.send(:include, MyPlugin::ApplicationControllerPatch)