У меня есть действие контроллера, которое может выиграть от кэширования. Тем не менее, когда я включаю кеширование действий с помощью обычного:
caches_action :myaction, :expires_in=>15.minutes
... кэширование не вызывается. Похоже, что это потому, что действие вызывается с помощью HTTP POST. Для аналогичных действий, вызываемых с использованием HTTP GET, кэширование работает нормально.
Я понимаю, что использование POST для этого действия, вероятно, не очень хороший стиль и нарушает соглашения о маршрутизации ресурсов - возможно, именно поэтому ответ не кэшируется, даже если он и может быть. Однако на данный момент я застрял с этим, так как это то, что в настоящее время делает клиент, и я не могу изменить это легко.
Итак, есть ли способ принудительно кэшировать этот метод, даже если к нему обращаются через POST?
edit: я должен уточнить, возможно, что POST не имеет побочных эффектов, так что это безопасно кэшировать действие Во-первых, это действительно должен был быть GET, он просто не может и не может быть легко изменен на данный момент. Также не имеет значения, что браузеры или прокси не будут кэшировать ответ.