Ruby on Rails:如何为变量分配一个硬值? [英] Ruby on Rails: How to assign a hard value to a variable?
问题描述
我正在使用多个重定向,我想从 A->B->C->A 重定向.
I am using multiple redirects, and I would like to redirect from A->B->C->A.
所以在 B 中,我将路径 A 保存为
So in B, I save path A as
@previouspage = request.referer
所以此时@previouspage = A,但是当我在C中调用@previouspage时,它并没有带来B中保存的硬值,而是找到了自己的相对request.referer,也就是B.
and so @previouspage = A at this point, but when I call @previouspage in C, it doesn't bring the hard value saved in B, but finds its own relative request.referer, which is B.
所以在 C 中,@previouspage = B(因为我认为 Ruby 中的变量是软链接)
So in C, @previouspage = B (because I think variables in Ruby are soft-links)
我如何只保存 request.referer 在 B 点的值,然后将该 URL 保存到我以后可以访问的变量中?
How would I just save whatever the value of request.referer was at point B, and then save that URL into a variable that I can access later?
推荐答案
HTTP 是一种无状态协议:在请求之间不会记住变量.如果您想在请求之间保存状态,那么您可以使用会话.在 Rails 中,它是这样完成的:
HTTP is a stateless protocol: variables are not remembered between requests. If you want to save state between requests, then you might use a session. In Rails it is done like this:
在乙:
session[:page_a] = request.referer
在 C:
@next_page = session[:page_a]
Rails 安全指南从会话及其漏洞开始.你可能想看看.
The Rails Security Guide begins with sessions and their vulnerabilities. You might want to check it out.
这篇关于Ruby on Rails:如何为变量分配一个硬值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!