【发布时间】:2013-10-02 22:16:02
【问题描述】:
我有 Rails (4.0) 使用模型 User 运行 Devise gem (3.1.0)。我有一个名为 CollectionsController 的控制器,我想在这个控制器中使用 Devise 的访问器方法 current_user 获取当前登录的用户对象。
然后它返回undefined local variable or method 'current_user' for CollectionsController:Class。最有趣的是,当我尝试在另一个控制器中执行相同操作时,例如 PagesController — 一切正常!
UPD: 共享我的控制器的“代码”: )
class CollectionsController < ActionController::Base
def index
@user = current_user
end
end
current_user 方法的来源是由 Devise 定义的,而不是我。所以我认为这不是问题。
【问题讨论】:
-
请分享您在 CollectionsController 下的代码以及与 current_user 方法相关的任何代码
-
该代码是放在一个动作中还是像这样放在控制器的中间?
-
是的,对不起,它被放在
indexaction 里面 -
你继承 ActionController::Base 而不是 ApplicationController 有什么原因吗?
-
各位,抱歉,我找到了问题所在。案例是我在控制器文件夹中创建的用于备份目的的文件夹,似乎存在某种冲突或什么。当我删除它时,一切都开始工作了。至于继承自
ActionController::Base不,没有理由。我刚刚绝望地尝试了所有可用的选项 :) 它对它们都不起作用。
标签: ruby-on-rails devise