sinatra 手册上看到的下面的例子,是讲 sinatra 路由中的条件机制,有点不太明白,这里的条件中的user agent
是指 http 请求头里的user agent
?,那 HTTP 头中也没有host_name
和provides
阿,而且最后那个自定义条件的例子也没有看很懂,求 sinatra 大神指点一下
get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do
"你正在使用Songbird,版本是 #{params[:agent][0]}"
end
get '/foo' do
# 匹配除Songbird以外的浏览器
end
get '/', :host_name => /^admin\./ do
"管理员区域,无权进入!"
end
get '/', :provides => 'html' do
haml :index
end
get '/', :provides => ['rss', 'atom', 'xml'] do
builder :feed
end
set(:probability) { |value| condition { rand <= value } }
get '/win_a_car', :probability => 0.1 do
"You won!"
end
get '/win_a_car' do
"Sorry, you lost."
end