【发布时间】:2013-02-27 14:06:55
【问题描述】:
有没有一种方法可以将不同的控制器映射到彼此相关的 url,特别是当一个是另一个的子资源时?
更具体地说,这里有一个例子:
- 我有两种类型的资源:@987654321@ 和
articles。一个job包含多个articles。尽管他们有关系,但我想在单独的文件中处理与每个相关的实际代码。因此我有:
helpers/job_api.rb 和
helpers/article_api.rb
它们每个都像这样扩展 SinatraBase:
class ArticleAPI < Sinatra::Base
register Sinatra::Async
get '/list' do
#...
end
end
我现在想要的是将仅属于作业的所有 url 请求映射到 JobAPI 和属于文章的 URL 请求(但始终与单个作业相关联到 ArticleAPI。
我的config.ru 看起来像这样:
$LOAD_PATH
map "/" do
run Sinatra::Application
end
map "/job" do
run JobAPI
end
map "/job/:job_id/article" do
run ArticleAPI
end
但是当我尝试访问 url /job/12/article/list 时,这不起作用。
有人知道有没有办法做到这一点?
谢谢
【问题讨论】: