我有一個可以從緩存中受益的控制器操作。但是,當我通過通常打開動作緩存時:是否有可能使caches_action對通過HTTP POST訪問的rails控制器方法有效?
caches_action :myaction, :expires_in=>15.minutes
...緩存不會被調用。看起來這是因爲該操作是使用HTTP POST調用的。對於使用HTTP GET調用的類似操作,緩存工作正常。
我意識到使用POST進行此操作可能不是很好的風格,並且會破壞資源路由約定 - 可能這也是爲什麼響應沒有被緩存,即使它可能是。但是現在我堅持下去,因爲這是客戶目前所做的事情,我不能輕易改變它。
那麼,有沒有辦法強制緩存這種方法,即使它通過POST訪問?
編輯:我應該澄清,也許POST沒有副作用,所以緩存動作是安全的。它本來應該是一個GET,但它現在不是,也不容易被改變。此外,瀏覽器或代理不會緩存響應並不重要。
參數的作用是相同的 - 是否有其他數據與帖子(標題?),可能會導致它不緩存?我沒有看到日誌中的那些 - 但也許客戶端正在設置標題以要求繞過緩存?我會給Rails.cache建議一個去。對於機架/金屬,我需要導軌2.3?目前我在2.2.2上。 – frankodwyer 2009-08-15 20:23:38
請參閱上面的修改意見。 – ADAM 2009-08-16 01:27:46