让我们使用一个真实的例子。

我想猴子补丁WillPaginate::LinkRenderer.to_html方法。

到目前为止,我已经尝试过:

  • 在文件夹中创建文件:lib/monkeys/will_paginate_nohtml.rb
  • 在config/environments.rb中添加:在文件
  • 的末尾需要'monkeys/will_paginate_nohtml'
  • 在该文件中,这是我的代码:

  • Ë
    module Monkeys::WillPaginateNohtml
      def to_html
        debugger
        super
      end
    end
    
    WillPaginate::LinkRenderer.send(:include, Monkeys::WillPaginateNohtml)
    

    但是以某种方式,调试器无法通过。似乎修补失败。

    任何帮助,将不胜感激,谢谢!

    最佳答案

    那这个呢:-) @shingana的解决方案,@ kandadaboggu将不起作用,因为这里没有“super”。您要调用原始版本而不是 super 版本。

    module WillPaginate
      class LinkRenderer
        alias_method :to_html_original, :to_html
        def to_html
          debugger
          to_html_original
        end
      end
    end
    

    关于ruby-on-rails - 如何在Ruby on Rails中修补猴子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3833347/

    10-10 05:29