【发布时间】:2017-11-23 12:00:33
【问题描述】:
我尝试使用 Sinatra 实现的是,我认为是相当简单的问题。我有一堆控制器(来自 Rails 世界),我从我的 config.ru 运行它们,看起来像:
require 'sinatra/base'
require './app'
# require all the parts needed
Dir.glob('./{controllers,helpers,models}/*.rb').each { |file| require file }
# start the server via Rack map method which binds route to Sinatra app
map('/') { run ApplicationController }
map('/') { run AuthenticationController }
map('/customers') { run CustomerController }
map('/contact_us') { run ContactUsController }
它们是 ApplicationController 的子类(它本身是 App
get '/:id/home' do
erb :'/customers/home'
end
我想要做的是能够使用像 /customers/:id/contacts 这样的带有 id 的嵌套路由,而无需在控制器中复制整个路径。我不能用地图做到这一点,使用 namespace 似乎也不是解决这个问题的方法。我愿意接受如何更好地构建它以实现这一目标的建议。
谢谢。
【问题讨论】: