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

时间:2014-06-07 15:51:04

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

关注How To: Use devise inside a mountable engine,我无法显示任何Devise帮助方法。

我使用的引擎是People。 (见我的full repo

module People
  class ApplicationController < ActionController::Base
    current_user
  end
end

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

我尝试了以下

    People :: ApplicationController 顶部的
  • require 'devise' 主持人的application.rb
  • 中的
  • require 'devise'
  • 致电main_app.current_user
  • 致电People::User.current_user
  • 添加helper People::Engine.helpers(每this SO suggestion

而且,会话

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

# Pry Session
  session[:foo]
  => NameError: undefined local variable or method `session' for People::ApplicationController:Class

附加上下文,已安装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)

1 个答案:

答案 0 :(得分:5)

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