加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails中的`flash`如何成为应用程序的全局?

发布时间:2020-12-17 02:40:51 所属栏目:百科 来源:网络整理
导读:我很好奇Rails是如何实现这一点的.我注意到你可以在一个应用程序中全局访问flash变量,但它没有@或$$的前缀. 我还可以看到有一种访问 flash 的方法,还有一个initializer也可以设置@flash,但是如何将flash作为局部变量调用呢? 解决方法 会议 除了apneadiving
我很好奇Rails是如何实现这一点的.我注意到你可以在一个应用程序中全局访问flash变量,但它没有@或$$的前缀.

我还可以看到有一种访问flash的方法,还有一个initializer也可以设置@flash,但是如何将flash作为局部变量调用呢?

解决方法

会议

除了apneadiving的答案,闪存是中间件堆栈(ActionDispatch::Flash)的一部分.它实际上是一个非持久性会话cookie:

从the docs开始:

The flash is a special part of the session which is cleared with each
request. This means that values stored there will only be available in
the next request,which is useful for passing error messages etc.

与params工作的方式大致相同(基于每个请求),flash变量仅填充来自先前请求的数据.

中间件

如果您采用apneadiving的评论,您将看到Flash是通过中间件堆栈创建的 – 这意味着变量的本地特性仅针对该特定请求设置(与params非常相似).这就是你可以在任何控制器中访问/设置flash消息的原因 – 因为它在“中间件堆栈”的更高位置定义 – 它提供了一个看起来像全局的范围

我敢肯定像apneadiving这样的人可以比我更好地解释它,但这就是我的看法

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读