【发布时间】:2016-12-06 10:02:32
【问题描述】:
我正在尝试覆盖来自第三方库的两个模块中的方法。
看起来像这样:
module Omnigollum
module Helpers
def kick_back
redirect !request.referrer.nil? && request.referrer !~ /#{Regexp.escape(settings.send(:omnigollum)[:route_prefix])}\/.*/ ?
request.referrer:
'/'
halt
end
end
end
此库中的其他函数使用此方法。我需要完全覆盖它。
我尝试了很多其他 stackoverflow 线程提供的解决方案,但到目前为止没有任何效果。
这是我现在拥有的:
module OmnigollumOverride
module Helpers
def kick_back
puts '=-=-=-=-=-=-=-=-=-==-=-'
puts '=-=-=-=-=-=-=-=-=-==-=-'
end
end
end
include Omnigollum
Omnigollum.module_eval { include OmnigollumOverride }
我只是打印一些行来测试该方法是否被正确覆盖。
【问题讨论】:
标签: ruby module overriding