【发布时间】:2015-10-02 02:18:01
【问题描述】:
我有这个结构:
module Analytics
def self.registered(app)
module DepartmentLevel
departmentParticipation = lambda do
end
departmentStatistics = lambda do
end
app.get '/participation', &departmentParticipation
end
module CourseLevel
courseParticipation = lambda do
end
end
end
在模块 Analytics 的最后,我想将请求的每个部分路由到他的特定子模块。如果有要求
'analytics/department'
它应该重定向到具有自己的路由的模块DepartmentLevel
app.get 'participation', &departmentParticipation
我首先想到的是使用 map。但是如何在不必运行新的或继承 Sinatra::Base 对象的情况下使用它呢?
【问题讨论】:
-
不确定你能不能...你能解释一下为什么地图不适合你吗?
-
@Manuel,map 适合我...但我想工作而不必运行从 Sinatra::Base 继承的新类。经过一段时间的努力,我意识到我可以使用名为@@current_root_path 和@@current_directory_path 的模块变量来简单地管理路由和子路由。通过这个名字,我想你可以明白我的意思......但我也意识到这样做会让我失去可读性。最后,我正在寻找一种类似于您给出的答案的方法:子类化。谢谢! :)