我有一個視圖來顯示保存在數據庫中的資源的詳細信息。一些細節屬於資源模型本身,一些細節屬於相關模型。有些字段在Rails中的分段緩存中獲取舊值
在視圖中我使用片段緩存的細節。
當用戶按下視圖上的按鈕時,視圖的一部分被表單替換,因此用戶可以在不加載新頁面的情況下編輯細節。當表單打開時,緩存已過期(實際上,我已經檢查過)。當用戶提交表單(using :remote => true
)時,表單將隱藏,並且使用jQuery重新加載原始內容並呈現部分內容。
到目前爲止,一切正常。使用<% cache ... do %>
和<% end %>
以內的代碼中的新值正確重新加載原始內容。
奇怪的是當我重新加載頁面時,一些新值已經消失。相反,會顯示一些舊的值(在上次提交後應該緩存的值)。更奇怪的是,即使它們與錯誤的值位於同一個新的緩存文件中,某些值也會被更新。
就我所見,相關模型中的值是正確的,而資源模型中的值是錯誤的(舊的)。我想知道它是否與sql緩存有關,但我不認爲這是事實,因爲我認爲在重新加載頁面時應該清空sql緩存。
如果我打開表單並再次提交,數據會更新,並且一切正常。這是來自上次提交的數據進入緩存。如果在提交之前更改表單中的數據,它仍然是包含在緩存文件中的上次提交的數據。因此,即使其他字段更新正確,似乎爲資源模型提交的數據也會延遲一次提交。
如果我在development.rb中關閉緩存,一切都按預期工作。所有數據每次更新。
順便說一下,我的服務器上有同樣的問題。
任何有線索的人?
除了不包括您的'簽名',請記住,當您鏈接到您自己的網站時,您必須透露它是您的網站。我在這裏爲您添加了必要的披露。 –
感謝您的回覆!我現在還沒有時間(也沒有動力)去充分考慮這一點。由於緩存文件實際上被刪除,我認爲你的解決方案將無濟於事。所以我嘗試了其他的東西。我希望它能起作用! :-) –