Ruby on Rails:如何为变量分配一个硬值? [英] Ruby on Rails: How to assign a hard value to a variable?

查看:40
本文介绍了Ruby on Rails:如何为变量分配一个硬值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用多个重定向,我想从 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆