Redmine:如何覆盖模型方法visible_condition(Redmine: How to override the model method visible_condition)
我想用我的插件覆盖模型方法。 我试图创建一个新的模型Patch with方法,应该覆盖如下:
require_dependency 'issue' module IssuePatch def self.included(base) # :nodoc: base.send(:extend, ClassMethods) base.send(:include, InstanceMethods) base.class_eval do alias_method :visible_condition, :visible_condition_with_patch end end module ClassMethods end module InstanceMethods def visible_condition_with_patch(user, options={}) <Do Something> end end end Rails.configuration.to_prepare do unless Issue.included_modules.include? IssuePatch # Issue.extend(InstanceMethods) Issue.send(:include, IssuePatch) end endI want to override the model method with my plugin. I tried to create a new model Patch with method that should override like this:
require_dependency 'issue' module IssuePatch def self.included(base) # :nodoc: base.send(:extend, ClassMethods) base.send(:include, InstanceMethods) base.class_eval do alias_method :visible_condition, :visible_condition_with_patch end end module ClassMethods end module InstanceMethods def visible_condition_with_patch(user, options={}) <Do Something> end end end Rails.configuration.to_prepare do unless Issue.included_modules.include? IssuePatch # Issue.extend(InstanceMethods) Issue.send(:include, IssuePatch) end end最满意答案
尝试这个。
require_dependency 'issue' module IssuePatch def self.included(base) base.class_eval do def visible_condition(user, options={}) # do something end end end end Issue.send(:include, IssuePatch) unless Issue.included_modules.include?(IssuePatch)Try this.
require_dependency 'issue' module IssuePatch def self.included(base) base.class_eval do def visible_condition(user, options={}) # do something end end end end Issue.send(:include, IssuePatch) unless Issue.included_modules.include?(IssuePatch)更多推荐
发布评论