如果我们对方法进行别名,如何在Sinatra中对路径进行排序?

时间:2010-12-07 10:35:24

标签: sinatra

路线选择在sinatra然后在rails中是不同的。在rails中,routes.rb文件从上到下扫描,并选择第一个匹配的路由。

Sinatra将路由与每种方法相关联,在这种情况下,如果两种方法具有别名,则如何选择路由。

2 个答案:

答案 0 :(得分:1)

Ramaze actions不同 - 这个问题可能有意义 - Sinatra的路线不是由方法的存在来定义的。相反,您使用方法来定义路由,并且调用这些方法的顺序部分地定义了路由优先级。

例如,你写道:

get "/" do
  "Welcome!"
end

get "/products" do
  "We sell stuff!"
end

别名没有自定义“索引”或“产品”方法。有关详细信息,请参阅The Sinatra Book online

答案 1 :(得分:1)

Sinatra路由系统非常通用。

您可以使用方法传递来跳转路线。点击这里[http://www.sinatrarb.com/intro]

 get '/guess/:who' do
    pass unless params[:who] == 'Frank'
    'You got me!'
  end

  get '/guess/*' do
    'You missed!'
  end

问候