微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Rails Devise – current_user为零

由于某些原因,current_user在我的无模型控制器(订阅)中返回nil.我没有在互联网上找到任何理由来证明这种行为…
class SubscriptionsController < ApplicationController  
  def new
    ...
  end

  def create
    current_user    # returns nil
  end
end

我有一个csrf元标记

<Meta content="xxx" name="csrf-token">

我可以提供更多的代码,但我不知道什么是有用的.

UPDATE

所以感谢评论/答案,我已经将问题明确指出了一个特定的行动:创建.

如果我将@user = current_user添加到新的内容中,我可以在我的新视图中显示当前用户的电子邮件.但是,在我的创建控制器中,current_user返回nil.

我通过表单(提交)访问了创建操作.

在表单提交之前,我验证输入,然后发送一个请求到条纹,以获取一个令牌离开表单.如果没有错误(验证和条带),我然后发送表单.

可能是原因吗?

更新2

在我的错误消息中,我的会话转储是空的,而它应该包含current_user信息…

解决方法

原来我所做的AJAX请求没有携带CSRF令牌.因此,Rails正在杀死我的会话.

添加了skip_before_filter:verify_authenticity_token在我的SubscriptionsController中,它现在正在工作.这可能不是最安全的解决方案,但它现在可以工作,所以我稍后会继续开发并回到这个问题.

原文地址:https://www.jb51.cc/ruby/265236.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐