调用方法时显示警告?

时间:2015-04-02 22:05:57

标签: ruby

我有一个不鼓励使用stylesheet_link_tag的宝石 - 我想在每次调用stylesheet_link_tag时在控制台中显示警告,而不重新打开或复制此方法的逻辑(我的关注的是不同版本的rails将有不同的实现)。

ruby​​中是否有一种方法可以挂钩到现有方法(而不重新打开它),或者可能是我可以检测到该名称的方法被调用的方式,以便我可以继续显示我的自定义警告?

1 个答案:

答案 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