在sinatra更简洁的网址模式

时间:2012-12-06 01:59:53

标签: ruby sinatra routes

大家。

我正在使用sinatra构建一个Web应用程序。在api部分中,有许多以共同前缀开头的路由,例如:

get '/v1/command_1' do; end
get '/v1/command_2' do; end
get '/v1/command_3' do; end
get '/v1/command_4' do; end
get '/v1/command_5' do; end

我想知道如何避免所有这些'/ v1'前缀?我可以只在一条路线中定义一次,而在其他路线中,我可以用'/ command_1'或类似的东西开始吗?

提前致谢!

2 个答案:

答案 0 :(得分:3)

我之前没有使用它,但有一个sinatra-contrib项目的扩展,可以让你像这样嵌套。

http://www.sinatrarb.com/contrib/namespace.html

然后你可以这样做:

namespace '/v1' do
  get '/command_1' {}
  get '/command_2' {}
  # etc
end

答案 1 :(得分:0)

get '/v1/command_:command' do |command|
  # ...
end