设计current_user无法在可安装引擎中工作

Dav*_*com 1 ruby-on-rails rails-engines devise

以下如何:使用设计可安装发动机内,我不能得到任何的设计辅助方法来显示.

我正在使用的引擎是People.(见我的完整回购)

module People
  class ApplicationController < ActionController::Base
    current_user
  end
end
Run Code Online (Sandbox Code Playgroud)

返回 undefined local variable or method 'current_user' for People::ApplicationController:Class

我尝试了以下内容

  • require 'devise' 在People :: ApplicationController的顶部
  • require 'devise' 在主机的application.rb中
  • 调用 main_app.current_user
  • 调用 People::User.current_user
  • 添加helper People::Engine.helpers(根据此SO建议)

而且,会议也不是

不确定它是否相关,但是当我pry进入ApplicationController并输入时

# Pry Session
  session[:foo]
  => NameError: undefined local variable or method `session' for People::ApplicationController:Class
Run Code Online (Sandbox Code Playgroud)

安装了附加的Context,Devise

我能够创建用户.

# Pry Session
  People::User
  => People::User(id: integer, email: string, encrypted_password: string, reset_password_token: string, reset_password_sent_at: datetime, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, created_at: datetime, updated_at: datetime)
Run Code Online (Sandbox Code Playgroud)

Rya*_*igg 5

这里的问题是因为您试图current_user在类上下文而不是实例上下文中访问实例方法.如果您在控制器中的某个操作中引用了该方法,它应该可以工作.