![](/img/trans.png)
[英]What is the difference between 'env' and 'request.env' in Rails Controller?
[英]Add to / modify request.env in a controller
如何在控制器中修改request.env? 我想做这样的事情:
request.env["newkey"] = content
然后在下一个控制器中,我从设置环境的控制器中将redirect_to重定向到,我想使用request.env [“ newkey”]访问内容。
那么我将如何修改request.env?
request.env["newkey"] = content
确实可以将新密钥添加到request.env
对象中。
但是,这对您要完成的工作没有帮助,因为在重定向时,它是一个新请求,并且将重新创建request.env
对象。 在上一个请求中设置的新newkey
将丢失。
您需要使用的是Rails Flash。
Flash提供了一种在动作之间传递临时原始类型(字符串,数组,哈希)的方法。 您放置在闪光灯中的任何东西都将暴露于下一个动作,然后清除。
在第一种方法中设置值,如下所示:
def <first_method>
...
flash[:newkey] = params[:number]
redirect_to ...
end
然后可以按以下方式在redirected_to方法中对其进行访问:
def <redirected_to_method>
...
new_key_val = flash[:newkey]
...
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.