20小时学会编程 互动版

##Sinatra中的路由(route)

我们需要学习Sinatra中的路由(route),在Sinatra中,一个路由分为两部分:HTTP方法(GET, POST等)和URL匹配范式。 每个路由都有一个要执行的代码块:

get '/' do
  .. 显示内容 ..
end

post '/' do
  .. 创建内容 ..
end

路由按照它们被定义的顺序进行匹配。 第一个与请求匹配的路由会被调用。

路由范式可以包括具名参数,可通过params哈希表获得:

get '/hello/:name' do
  # 匹配 "GET /hello/foo" 和 "GET /hello/bar"
  # params['name'] 的值是 'foo' 或者 'bar'
  "Hello #{params['name']}!"
end

路由范式也可以包含通配符参数, 可以通过params['splat']数组获得。

get '/say/*/to/*' do
  # 匹配 /say/hello/to/world
  params['splat'] # => ["hello", "world"]
end

get '/download/*.*' do
  # 匹配 /download/path/to/file.xml
  params['splat'] # => ["path/to/file", "xml"]
end

更多的关于Sinatra知识需要查看资料。