问题似乎在于所有执行POST,PUT,DELETE请求的测试。似乎csrf令牌没有附加这些请求。因此我被重定向到/ login。当然,GET请求完全没问题。
值得一提的是,实际的浏览器交互很好。所以它适用于dev,但不适用于测试环境。
有人见过这个吗?
答案 0 :(得分:0)
可能是由于修复了csrf安全漏洞。如果您尚未添加csrf_meta_tags并更新了jquery-ujs文件,则可能还需要执行此升级。如果它在开发模式下工作,则可能不是这种情况。下面是关于这个主题的更详细的博客文章。 http://jasoncodes.com/posts/rails-csrf-vulnerability
答案 1 :(得分:0)
好的,问题出在protect_from_forgery
上。对于一些我不知道的原因before_filter :login_required
过早触发。我不知道具体细节或如何“正确”解决这个问题。但这样做可以让我最终运行我的测试:
protect_from_forgery unless Rails.env.test?