我有一个问题。我的食谱索引页面中有一份食谱列表。我们的想法是,当您单击特定配方时,它会将您带到显示页面并将配方ID存储在会话中。会话中id的存在/不存在是程序工作流程的组成部分。创建子配方或重新访问索引页时,会话将被清除。但是,当您在不创建资源的情况下单击浏览器(to recipes/index
)时,配方ID仍保留在会话中,您不再需要会话中的值。这会导致程序遇到错误。如何单击后退按钮也会删除会话
答案 0 :(得分:0)
两种可能的解决方案,包含您提供的信息:
before_action
以清除会话中的食谱ID。如果可能,我会选择后者。更多信息可以提供更好的答案。
答案 1 :(得分:0)
所以我通过检查request.referer
是否是索引页面的url来解决它。如果是,那么我清除会话。
继续前进,您可以通过检查标题密钥(request.headers["HTTP_REFERER"])
(也可以通过调用request.referer
获得)来处理此类情况。这种方式无论您使用哪种方法进入页面,都可以始终保持其保真度。