ruby – 使用sinatra在块之间传递数据
发布时间:2020-12-16 23:05:26 所属栏目:百科 来源:网络整理
导读:我正在尝试使用sinatra在块之间传递数据.例如: @data = Hash.newpost "/" do @data[:test] = params.fetch("test").to_s redirect "/tmp"endget "/tmp" do puts @data[:test]end 但是,无论何时我到达tmp块,@data都是nil并且抛出一个错误.这是为什么? 解决
我正在尝试使用sinatra在块之间传递数据.例如:
@data = Hash.new post "/" do @data[:test] = params.fetch("test").to_s redirect "/tmp" end get "/tmp" do puts @data[:test] end 但是,无论何时我到达tmp块,@data都是nil并且抛出一个错误.这是为什么? 解决方法
原因是因为浏览器实际上执行了两个单独的HTTP请求.
Request: POST / Response: 301 -> Location: /tmp Request: GET /tmp Response: ... 两个请求意味着两个单独的进程,因此@data实例变量在发送第一个响应后被清除. post "/" do test = params[:test] redirect "/tmp?test=#{test}" end get "/tmp" do puts params[:test] end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |