我正在为Sinatra制作一个简单的静态网站。
我想在/profile
/profile/history
和/profile/education
通过遵循官方文档,我可以通过以下方式实现:
get "/profile/history" do
...
end
get "/profile/education" do
...
end
变得多余。有 DRY 的方法吗?也许添加class
或其他什么?
由于
答案 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