2010-09-04 39 views
0

我已經把一些像這樣的代碼什麼是最好的方式來使軌道閃存條目一直持續到下一個動作?

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

在我的控制器中的功能,我所有的行動可以調用。這將保持這兩個閃存條目在FlashHash中。 (我認爲這看起來很古怪的代碼是有效的,因爲'='不僅僅是指定值。)

我的問題是,有沒有更好的方法來做到這一點?類似於

flash[:task_loader].pin 
+0

我想知道,我也無法讓你的第一個解決方案工作嗎?我沒有得到它。 – Alex 2011-01-23 10:16:11

回答

0

Flash是一種方便的包裝器,用於在Cookie中存儲數據並在下一個請求中過期。因此,您的通知消息將通過2個(或多個)請求響應週期工作。

如果你想要一些更持久,你可以使用會話:

session[:task_loader] = my_task_loader 

注意,一個餅乾只能容納4KB的數據。

(我相信看起來很奇怪的代碼工作 因爲「=」並不僅僅是 分配值的更多。)

這是因爲它不是簡單的任務,但在方法[]=,與此類似的簽名:

def []=(k, v) 
+0

在這種情況下,我使用Flash來存儲關於在當前頁面上重新加載項目列表的AJAX請求時要加載的信息。我無法使用會話 - 當從瀏覽器歷史記錄中抽取頁面進行AJAX調用時,我的應用程序變得困惑。 – Ben 2010-09-06 06:36:35

相關問題