0

私が作成しているアプリケーションでは、gemを使用しています。このgemには、何かが変更されたときに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 に答える