有一个模块:
module ActionDispatch
module Routing
end
end
方法:
def add_movie_path
end
def edit_movie_path
end
如何添加模块路由此方法?
只有this吗?
答案 0 :(得分:3)
尝试:
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
请参阅Modules Magic了解更多信息。
答案 1 :(得分:2)
除非我误解了你的问题,否则怎么样:
module ActionDispatch
module Routing
def add_movie_path
end
def edit_movie_path
end
end
end
或者,您可以使用module_eval
。
答案 2 :(得分:0)
只需将您的方法放在模块中即可。
module ActionDispatch
module Routing
def add_movie_path
end
def edit_movie_path
end
end
end