我的RoR网站使用fullcalendar
gem实现日历。每个用户都有一个日历,显示他或她正在参加的事件。以下方案为我的问题设定了阶段:
show
页面。show page
如何让浏览器刷新Alice的活动信息,以便在按下后退按钮时只显示她当前正在参加的活动?
我已经搜索了Stack Overflow并没有找到可行的解决方案。此处How to prevent browser page caching in Rails显示的缓存清除无效。我甚至不确定这是一个缓存问题。也许有一些javascript会强制重新加载信息?任何解决方案都非常感谢。谢谢!
回应@ElliottRoche:
在视图中单击“出席”按钮,触发出席操作:
<%= button_to button_text, attend_event_path(@event), :remote => 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("<%= j render(:partial => 'attendees_list', :locals => { :attendees => @attendees }) %>");
从这里开始,当按下后退按钮时,不反映用户已经参加/无人参加活动的事实。
答案 0 :(得分:1)
尝试在响应阻止中添加format.html { redirect_to(@event) }
。
答案 1 :(得分:0)
原因是你正在按下后退按钮,页面将带你到你所在的最后一页,恢复你离开时的状态。点击后退按钮不会强制页面重新加载&#34;。你可以配置&#34;返回&#34;按钮并强制它发出重定向或渲染您想要去的页面(必要时传递参数)。
HTML5中引入了一些新方法。它可能会有所帮助,它可能会解决您的问题,但我无法保证它会因为我自己没有尝试过。
祝你好运!