刷新后退按钮上的所有信息按:Ruby on Rails

我的RoR网站使用fullcalendar gem实现日历。 每个用户都有一个日历,显示他或她正在参加的事件。 以下方案为我的问题设定了阶段:

  1. 用户Alice在她的日历上单击一个事件,该事件将导致事件的show页面。
  2. Alice单击事件show page上的“无人参与事件”按钮
  3. Alice单击后退按钮。
  4. 她无人看管的事件仍然列在她的日历上。

如何让浏览器刷新Alice的事件信息,以便在按下后退按钮时仅显示她当前正在参加的事件?

我已经搜索了Stack Overflow并没有找到可行的解决方案。 如此处所示的缓存清除如何防止Rails中的浏览器页面缓存不起作用。 我甚至不确定这是一个缓存问题。 也许有一些javascript会强制重新加载信息? 任何解决方案都非常感谢。 谢谢!

回应@ElliottRoche:

在视图中单击“出席”按钮,触发出席操作:

  true, :id => "attend" %> 

参加活动会从与会者列表中添加/删除与会者,如下所示:

  def attend @event = Event.find(params[:id]) @attendee = User.find(session[:user_id]) if @event.users.exclude?(@attendee) @event.users << @attendee @event.save else @event.users.delete(@attendee) end @attendees = @event.users respond_to do |format| format.js format.html { } format.json { } end end 

使用attend.js.erb,使用UJS更新与会者列表:

 $('#attendees-list').html(" 'attendees_list', :locals => { :attendees => @attendees }) %>"); 

从这里开始,当按下后退按钮时,不反映用户已经参加/无人参加事件的事实。

尝试在响应阻止中添加format.html { redirect_to(@event) }

原因是你正在按下后退按钮,页面将带你到你所在的最后一页,恢复你离开时的状态。 点击后退按钮不会强制页面“重新加载”。 你可以配置“后退”按钮并强制它发出你要去的页面的重定向或渲染(必要时传递参数)。

HTML5中引入了一些新方法。 它可能会有所帮助,它可能会解决您的问题,但我无法保证它会因为我自己没有尝试过。

https://css-tricks.com/using-the-html5-history-api/

祝好运!