我有一个已设置的会话,但它似乎没有转移到其他页面。我在Rails 2.3.5和Ruby 1.8.7上。还有其他人遇到过这个问题吗?
答案 0 :(得分:2)
当CSRF验证失败时,我在Rails 3.1中遇到了这个问题。如果您手动使用标记而不是通过Rails提供的内置方法之一生成标记,则会发生这种情况。
在日志文件中搜索“csrf”(不区分大小写的搜索)。如果您看到显示csrf失败的日志条目,则Rails可能正在重置您的会话。
答案 1 :(得分:0)
您可能会丢失请求之间的会话,如果首先未正确建立请求,则可能会发生这种情况。如果您检查了cookie,由于验证失败,您可能会看到会话标识符发生变化,正在重新分配。
它也可能被分配给浏览器随后拒绝的域。如果应用程序配置为使用特定域,然后在另一个域下重新托管,甚至localhost
,则会发生这种情况。
答案 2 :(得分:0)
您可能没有在布局中使用过csrf元标记。尝试删除controllers文件夹中application_controller.rb中的“防止伪造”。然后尝试再次运行该应用程序,如果它可以正常工作,那么您就没有为您的布局添加标签。