设计无法获取current_user

时间:2017-04-22 09:31:05

标签: ruby-on-rails ruby devise

我想获取成功登录用户的令牌,因此我在get_token中创建了Application Controller方法:

    def after_sign_in_path_for(resource)
      if current_user.role.role_type === 'user'
        current_user.regenerate_token

        @user_token = current_user.token
        puts @user_token #logging properly

        user_profile_path
      else
        rails_admin_path
      end
    end

    def get_token
      return @user_token
    end

现在,我想在我的控制器中获取令牌的值,即Api::V1::CommentController所以我有我的代码

class Api::V1::CommentController < ApplicationController
  def initialize
   @http_status = { :status => false }
  end


  def create
    puts get_token #I just want to log this


    render :json => @http_response
  end
end

使用上面的代码,我在使用POSTMAN测试它时没有获得生成的令牌。我做错了什么?

修改: 我的路线中有这个:

    namespace :api do
      namespace :v1 do
       devise_scope :user do
         post 'comment/create' => 'comment#create'
       end
      end
    end

1 个答案:

答案 0 :(得分:0)

您正在设置的实例变量仅适用于该特定请求。

只需将方法更改为

即可
def get_token
  current_user.token
end