Sinatra的多个块参数

时间:2010-01-18 20:44:20

标签: ruby sinatra params

我正试图让这个Sinatra GET请求起作用:

get '/:year/:month/:day/:slug' do

end

我知道你可以使用一个参数来处理块参数:

get '/:param' do |param|
  "Here it is: #{param}."
end

但是如何在第一个代码块中使用多个块参数?我对其他方法持开放态度。

2 个答案:

答案 0 :(得分:2)

多个占位符作为哈希存储在params中。

# Request to /2009/10/20/post.html

get '/:year/:month/:day/:slug' do
  params[:year]  # => 2009
  params[:month] # => 10
  params[:day]   # => 20
  params[:post]  # => post.html
end

答案 1 :(得分:0)

请原谅我对Sinatra的无知,但是不应该设置像Rails map.connect这样的命名参数?:

get '/:year/:month/:day/:slug

现在可以在params哈希:

中访问参数
params = { :year => "foo", :month => "bar", :day => "baz", :slug => "etc" }