如何使用devise_token_auth在Rails中获取current_user?

时间:2017-01-12 15:32:44

标签: ruby-on-rails devise

我使用 devise_token_auth 设计进行身份验证和注册。一切顺利:我可以登录,使用api和web界面注销。但是我无法获得 current_user 设计变量(nil)。

<% if current_user %>
    <%= link_to "Edit profile", edit_user_registration_path(current_user.id) %> |
    <%= link_to('Logout', destroy_user_session_path, :method => :delete) %>
  <% else %>
    <%= link_to "Register", new_user_registration_path %> |
    <%= link_to('Login', new_user_session_path) %>
  <% end %> 

application_controller.rb

class ApplicationController < ActionController::Base
  include DeviseTokenAuth::Concerns::SetUserByToken
  protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format == 'application/json' }
end

我需要将此变量用作全局,例如,在application.html.erb

中使用

1 个答案:

答案 0 :(得分:0)

试试这个

# app/controllers/test_controller.rb
class TestController < ApplicationController
  before_action :authenticate_user!

  def index
    @user = current_user
  end
end

注意before_action authenticate_user!负责设置current_user