Sinatra - 制作嵌套网址?

时间:2013-08-03 09:14:45

标签: ruby sinatra

我正在为Sinatra制作一个简单的静态网站。

我想在/profile /profile/history/profile/education

下的几个页面

通过遵循官方文档,我可以通过以下方式实现:

get "/profile/history" do
    ...
end

get "/profile/education" do
    ...
end

变得多余。有 DRY 的方法吗?也许添加class或其他什么?

由于

2 个答案:

答案 0 :(得分:2)

安装sinatra-contrib并使用Sinatra::Namespace来实现此目标。

示例:

require "sinatra/base"
require "sinatra/namespace"

namespace '/profile' do
  get '/history' { ... }
  get '/education' { ... }
end

答案 1 :(得分:1)

使用字符串插值:

prefix = "/profile"

get "#{prefix}/history" do
    ...
end

get "#{prefix}/education" do
    ...
end