【发布时间】:2012-10-12 22:36:52
【问题描述】:
假设你有:
get '/' do
haml :index
end
get '/form' do
haml :form
end
post '/form' do
@message = params[:message]
redirect to ('/') --- how to pass @message here?
end
我希望@message 实例变量在“/”操作中也可用(传递给),所以我可以在haml 视图中显示它。 在不使用会话、闪存、@@class_variable 或数据库持久性的情况下如何做到这一点?
我只想像在方法之间传递值一样传递值。
我不想使用会话 cookie,因为用户可以将它们关闭,我不喜欢它是一个暴露给所有代码的类变量,而且我不需要数据库的开销。
谢谢
编辑:
这是另一个问题,解释了在 Rails 中处理此问题的一种非常简单的方法
Passing parameters in rails redirect_to
以下是我从论坛收集的有关该主题的更多信息,这些信息适用于 Rails,但根据我的经验,不适用于 Sinatra(但请检查一下,因为我可能做错了什么):
如果您在 action1 的末尾重定向到 action2,只需附加 重定向结束的值:
my_var = <some logic>
redirect_to :action => 'action2', :my_var => my_var
在同一线程上,另一个用户提出以下建议:
def action1
redirect_to :action => 'action2', :value => params[:current_varaible]
end
def action2
puts params[:value].inspect
end
来源:http://www.ruby-forum.com/topic/134953
这样的东西可以在 Sinatra 中工作吗?谢谢
【问题讨论】: