我已经放了一些这样的代码
flash[:task_loader] = flash[:task_loader]
flash[:task_loader_params] = flash[:task_loader_params]
在我的控制器中的一个函数中,我的所有操作都可以调用它。这具有将这两个闪存条目保留在FlashHash
中的效果。 (我认为这个看似奇怪的代码是有效的,因为'='不只是分配值。)
我的问题是,有更好的方法吗?像
这样的东西flash[:task_loader].pin
答案 0 :(得分:0)
Flash是一种方便的包装器,用于在cookie中存储数据并在下一个请求中使它们到期。这样您的通知消息将通过2(或多个)请求响应周期。
如果您想要更多持久性,可以使用session:
session[:task_loader] = my_task_loader
请注意,一个cookie只能容纳4KB的数据。
(我认为奇怪的代码有效 因为'='不仅仅是 分配值。)
这是因为它不仅仅是一个赋值,而是一个方法[]=
,其签名与此类似:
def []=(k, v)