例如:当您想要将错误消息返回到另一个页面时
当前我这样做
get '/' do
erb :home
end
get '/send/:user' do
Process.detach(fork{ exec "ruby send.rb #{params[:user]} > output.txt"})
session['msg'] = "Process for the user #{params[:user]} iniciated, it will take a few minutes"
redirect '/'
end
并在.erb
中显示如下信息<span style="margin:auto; text-align: center; padding:10px"><%=session['msg']%></span>
使用会话变量
是一种更好的方法使用:
答案 0 :(得分:1)
你应该真正使用Sinatra Flash来获得你所追求的机制。 Flash消息通常会在一个请求后过期,因此您不需要手动管理它们(它们会在后台使用会话进行存储):
require 'sinatra'
require 'sinatra/flash'
enable :sessions
get '/' do
erb :home
end
get '/send/:user' do
Process.detach(fork{ exec "ruby send.rb #{params[:user]} > output.txt"})
flash[:msg] = "Process for the user #{params[:user]} initiated, it will take a few minutes"
redirect '/'
end
在home.erb:
<span style="margin:auto; text-align: center; padding:10px"><%= flash[:msg] %></span>