我有一個名爲/實施例/ 1 /重複 上有一個Ajax形式序幕頁/實施例/ 1/run_duplicate消息到控制器水平AJAX目的
控制器方法run_duplicate運行Example.duplicate(會話) 我通過會話,我知道這是一個神聖的禁忌。
重複的模型代碼大致是:
def duplicate(session)
session[:duplicate] = 0
duplicate_foobars
session[:duplicate] = 1
duplicate_snafus
session[:duplicate] = 2
duplicate_widgets
session[:duplicate] = 3
end
我這是做一個長輪詢重複的頁面上的其他控制器的方法:/例子/ 1/check_dupe_status 的目的是爲了得到更新的狀態會話[:重複],調整進度報告, 並通過ajax報告給用戶,以便他們可以看到Example.duplicate()的進度。
會話沒有按照我希望的方式更新。我可以看到代碼運行,但會話不更新,因此/ examples/1/check_dupe_status從不知道任何事情已經啓動。
鑑於我從一開始就犯了這個錯誤,通知用戶有關Example.duplicate()狀態的正確方法是什麼?
謝謝...會議居住在數據庫中,所以我的一些部分停止使用關於何時寫數據的常識:)。我希望避免在數據庫中創建自己的空間,但我擔心你可能是對的。要讓其他人檢查,但那可能是我必須要做的。 – cgr
不知道Rails在哪一刻將會話更改寫入數據庫。會話對象被封裝然後Base64'd,因此在技術上可以手動讀取數據。雖然可能會很棘手。但我的猜測是,Rails只在請求結束時將會話更改寫入數據庫,這使得這種猜測在你的案例中是學術性的。雖然可能值得研究。 – bioneuralnet