这似乎工作正常:
意见/ index.haml:
%form{:method => 'POST' :action => '/'}
%label{:for => 'name'} Name:
%input{:type => 'text, :value => @values[:name] || ""}
%input{:type => 'submit'}
Run Code Online (Sandbox Code Playgroud)
app.rb:
post '/' do
@values = params
haml :review
end
Run Code Online (Sandbox Code Playgroud)
意见/ review.rb
Hello #{params[:name]}!
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将我的后期数据发送到不同URL上的相同视图时,我收到错误,或者换句话说:
app.rb:
post '/' do
@values = params
redirect '/review'
end
get '/review' do
@values = params
haml :review
end
Run Code Online (Sandbox Code Playgroud)
数据未通过,但未引发错误.
如何在这样的页面之间发送后期数据?理想情况下,我不想创建数据库.
您可以将参数存储在会话中或显式指定查询字符串.来自Sinatra文档的浏览器重定向
如文档中所述,您可以使用会话或将POST参数转换为查询字符串并在redirect方法中使用它.一个粗略的例子是:
假设'/'块内的POST参数哈希是:
{
:name => "Whatever",
:address => "Wherever"
}
Run Code Online (Sandbox Code Playgroud)
这个哈希可以像这样的字符串:
query = params.map{|key, value| "#{key}=#{value}"}.join("&")
# The "query" string now is: "name=Whatever&address=Wherever"
Run Code Online (Sandbox Code Playgroud)
现在在里面使用它 post '/' do
redirect to("/review?#{query}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6787 次 |
| 最近记录: |