有没有一种方法可以将不同的控制器映射到彼此相关的 url,特别是当一个是另一个的子资源时?
更具体地说,这里有一个例子:
- 我有 2 种类型的资源:
jobs
和articles
. Ajob
包含多个articles
. 尽管他们有关系,但我想在单独的文件中处理与每个相关的实际代码。因此,我有:
helpers/job_api.rb
和
helpers/article_api.rb
它们每个都像这样扩展 SinatraBase:
class ArticleAPI < Sinatra::Base
register Sinatra::Async
get '/list' do
#...
end
end
我现在想要的是将所有属于作业的 url 请求映射到只JobAPI
属于文章的那些(但仍然始终与单个作业相关联到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
。
任何人都知道是否有办法做到这一点?
谢谢