2

モジュールがあります:

module ActionDispatch
  module Routing
  end
end

そして方法:

def add_movie_path
end

def edit_movie_path
end

このメソッドをルーティングするモジュールに追加するにはどうすればよいですか?

これが唯一の方法ですか?

4

3 に答える 3

4

試す:

module ActionDispatch
  module Routing
    def add_movie_path
    end

    def edit_movie_path
    end
     module_function :edit_movie_path
  end
end

そのため、次のようなインスタンスメソッドのように呼び出しを行うことができます。

class Make
   include ActionDispatch::Routing
end 


class MakeAll
   def only_needs_the_one_method
      ActionDispatch::Routing.edit_movie_path
   end
end 

を使用してクラスメソッドとして定義し、次のself.class_nameように直接アクセスすることもできます。

module ActionDispatch
  module Routing
    def self.add_movie_path
    end

    def self.edit_movie_path
    end
  end
end

class Make
    include ActionDispatch::Routing
   def do_something
     ActionDispatch::Routing.add_movie_path
   end
end 


class MakeAll
   def only_needs_the_one_method
      ActionDispatch::Routing.edit_movie_path
   end
end

詳細については、モジュールマジックを参照してください。

于 2013-03-07T15:14:03.127 に答える
2

私があなたが何を求めているのか誤解しない限り、次のようなものはどうですか?

module ActionDispatch
  module Routing
    def add_movie_path
    end

    def edit_movie_path
    end
  end
end

または、を使用することもできますmodule_eval

于 2013-03-07T15:09:13.947 に答える
0

モジュール内にメソッドを配置するだけです。

module ActionDispatch
  module Routing
    def add_movie_path
    end

    def edit_movie_path
    end  
  end
end
于 2013-03-07T15:11:47.527 に答える