0

在我正在创建的应用程序中,我使用了一个 gem。这个 gem 有一个 Module ,它有一个方法,当发生变化时 gem 会调用该方法。我需要做的是扩展这个方法的功能。我无法更改此方法的名称,也无法调用其他方法。

我说的是这里定义的重建方法:

https://github.com/the-teacher/the_sortable_tree/blob/master/app/controllers/the_sortable_tree_controller.rb

如何在不接触源代码的情况下向此方法添加功能?

4

1 回答 1

3

您需要在控制器中包含具有要覆盖的函数名称的模块,然后您可以编写具有相同名称的函数并在完成工作后调用 super。

class A
  include TheSortableTreeController::Rebuild
  def rebuild
     # do something here
     super
  end

这样,您将能够执行您的操作以及 gem 的操作。如果要完全删除对重建功能的依赖,请从代码中删除 super。

于 2012-08-10T10:11:17.977 回答