如何刷新redirect_to上的页面:回到Rails?

时间:2014-08-04 22:08:40

标签: ruby-on-rails caching

在Orders的索引操作中,我让用户更改用户每页看到的10个订单之一的状态。

当用户点击按钮时,POST请求完成并转到OrdersController#process。完成后我会执行redirect_to:back,这样用户就可以看到他在点击按钮之前看到的完全相同的页面(我有分页)。

问题是除非我刷新,否则显示的状态不会更新。我在我的OrdersController

中试过这个
before_action :set_cache_buster
def set_cache_buster
  response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
  response.headers["Pragma"] = "no-cache"
  response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end

但没有运气,我仍然会看到旧状态消息,除非我刷新页面。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

redirect_to(:back)会让你回到历史中。 所以,你必须刷新页面或只是使用ajax更改状态。或者使用localStorage浏览器,这样您就不必提出ajax请求。从本地存储中读取数据并更改页面上的状态。