Current_user设计方法在用户控制器外返回nil

时间:2011-09-23 20:39:31

标签: ruby-on-rails ruby-on-rails-3 devise

这是范围/路线问题吗? current_user在用户控制器中工作。在外部,在另一个控制器/视图中,这将返回nil。即使用户已登录,user_signed_in?方法返回false。我知道我错过了什么,只是无法指出我的手指。这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:6)

它适用于其他控制器。一个疯狂的猜测:也许其他控制器需要:before_filter:authenticate_user!

答案 1 :(得分:4)

发现问题。这是会议。显然,current_user和其他方法由于cookie而表现不正常。我有子域名,问题是因为https://github.com/fortuity/rails3-subdomain-devise/wiki/Tutorial-%28Walkthrough%29。这个git教程有所帮助。

谢谢!

答案 2 :(得分:2)

我遇到了同样的问题,我需要将它放在我的布局中,我使用的是与应用程序不同的布局:

= csrf_meta_tags

答案 3 :(得分:0)

同样的事情发生在我身上,但问题是当我发出ajax请求时。这修好了它(以haml为单位)。这可以确保所有ajax请求都带有csrf令牌:

:coffee
  require ['jquery'], ($)->
    $.ajaxSetup
      headers:
        'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')

确保它在标题中:

= csrf_meta_tags