在下一个操作之前,使用rails flash条目的最佳方法是什么?

时间:2010-09-04 06:19:12

标签: ruby-on-rails

我已经放了一些这样的代码

flash[:task_loader] = flash[:task_loader]
flash[:task_loader_params] = flash[:task_loader_params]

在我的控制器中的一个函数中,我的所有操作都可以调用它。这具有将这两个闪存条目保留在FlashHash中的效果。 (我认为这个看似奇怪的代码是有效的,因为'='不只是分配值。)

我的问题是,有更好的方法吗?像

这样的东西
flash[:task_loader].pin

1 个答案:

答案 0 :(得分:0)

Flash是一种方便的包装器,用于在cookie中存储数据并在下一个请求中使它们到期。这样您的通知消息将通过2(或多个)请求响应周期。

如果您想要更多持久性,可以使用session:

session[:task_loader] = my_task_loader

请注意,一个cookie只能容纳4KB的数据。

  

(我认为奇怪的代码有效   因为'='不仅仅是   分配值。)

这是因为它不仅仅是一个赋值,而是一个方法[]=,其签名与此类似:

def []=(k, v)