加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 将帖子数据传递给Sinatra中的其他页面

发布时间:2020-12-17 03:28:55 所属栏目:百科 来源:网络整理
导读:这似乎工作正常: 意见/ index.haml: %form{:method = 'POST' :action = '/'} %label{:for = 'name'} Name: %input{:type = 'text,:value = @values[:name] || ""} %input{:type = 'submit'} app.rb: post '/' do @values = params haml :reviewend 意见/
这似乎工作正常:

意见/ index.haml:

%form{:method => 'POST' :action => '/'}
  %label{:for => 'name'} Name:
    %input{:type => 'text,:value => @values[:name] || ""}
  %input{:type => 'submit'}

app.rb:

post '/' do
  @values = params
  haml :review
end

意见/ review.rb

Hello #{params[:name]}!

但是,当我尝试将我的后期数据发送到不同URL上的相同视图时,我收到错误,或者换句话说:

app.rb:

post '/' do
  @values = params
  redirect '/review'
end

get '/review' do
  @values = params
  haml :review
end

数据未通过,但未引发错误.

如何在这样的页面之间发送后期数据?理想情况下,我不想创建数据库.

解决方法

您可以将参数存储在会话中或显式指定查询字符串. Browser Redirect from Sinatra Documentation

如文档中所述,您可以使用会话或将POST参数转换为查询字符串,并在重定向方法中使用它.一个粗略的例子是:

假设’/’块内的POST参数哈希是:

{
  :name => "Whatever",:address => "Wherever"
}

这个哈希可以像这样的字符串:

query = params.map{|key,value| "#{key}=#{value}"}.join("&")
# The "query" string now is: "name=Whatever&address=Wherever"

现在在帖子里面用’/’做吧

redirect to("/review?#{query}")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读