我有一个不鼓励使用stylesheet_link_tag
的宝石 - 我想在每次调用stylesheet_link_tag
时在控制台中显示警告,而不重新打开或复制此方法的逻辑(我的关注的是不同版本的rails将有不同的实现)。
ruby中是否有一种方法可以挂钩到现有方法(而不重新打开它),或者可能是我可以检测到该名称的方法被调用的方式,以便我可以继续显示我的自定义警告?
答案 0 :(得分:2)
超级赢了。模块没有超类。您需要alias
在所有定义之前将其放在application_helper.rb
中的某处:
module ::ActionView::Helpers::AssetTagHelper
alias stylesheet_link_tag_original stylesheet_link_tag
def stylesheet_link_tag(*params)
logger.warn 'Stylesheet link tag called!'
stylesheet_link_tag_original(*params)
end
end