【发布时间】:2011-11-11 21:17:38
【问题描述】:
我已经尝试了几个小时,但仍然无法按照我想要的方式配置我的路线。
我想要实现的是:
我想捕获以特定前缀开头的所有内容。
很简单:
get "/prefix:id" do
puts params[:id]
end
但我不希望它是一个固定的前缀。我想把前缀放在配置文件中
settings.rb: 设置:前缀,'pre'
get "/#{settings.prefix}:id" do
puts params[:id]
end
这不起作用(Sinatra::Application:Class (NoMethodError) 的未定义方法“前缀”)。我还尝试使用正则表达式进行捕获:
before do
@prefix = settings.prefix
end
get %r{#{@prefix}(\d+)} do |id|
puts "Params: #{id}"
end
这也不起作用(不会捕获 URL)
有人收到了吗?
【问题讨论】:
-
如果在 Sinatra 中路由的处理方式与在 rails 中的处理方式相同(从上到下),您可以将类似
/*的路由定义为最后一个匹配任何内容的路由。 -
这也不是我正在寻找的解决方案,因为我想处理前缀不同于任何其他 URL 的 URL