使用参数
Sinatra 中的参数和其他所有东西一样——简单明了。
#!/usr/bin/env ruby
require 'rubygems'
require 'sinatra'
get '/hello/:name' do
"Hello #{params[:name]}!"
end
完成此更改后,您需要重新启动 Sinatra 应用程序。用 Ctrl-C 杀死它并再次运行它。(有一种解决方法,但我们将在以后的文章中讨论。)现在,参数很简单。我们做了一个名为 的动作/hello/:name
。这种语法是在模仿 URL 的样子,所以去http://localhost:4567/hello/Your Name
看看它的实际效果。
/hello 部分与您发出的请求中的 URL 部分匹配,并且 :name 将吸收您提供的任何其他文本并将其放在键 :name 下的 params 哈希中。参数就是这么简单。当然,您可以使用这些做更多事情,包括基于正则表达式的参数,但这几乎是所有情况下您所需要的。
参考:http ://ruby.about.com/od/sinatra/a/sinatra2.htm
编辑
params 值可以来自 GET 请求的查询字符串,也可以来自 POST 请求的表单数据,但它们还可以来自第三个地方:URL 的路径。
您可能知道,Rails 使用称为路由的东西将请求定向到相应的控制器操作。这些路由可能包含从 URL 中提取并放入 params 的段。例如,如果您有这样的路线:
match 'products/:id', ... 然后对像http://example.com/products/42这样的 URL 的请求会将 params[:id] 设置为 42
因此,只要 URL GET、POST 或 Path 包含此类模式,则 rails 会自动构造 params 哈希。
还要在这里检查参数部分(第 4 部分)