【发布时间】:2013-03-15 23:39:01
【问题描述】:
我将 Rails 3.2、Devise 和 Cancan 用于具有 3 个用户类别的应用程序:公司、客户和管理员。
我的问题是我得到了这个:
undefined local variable or method `current_user' for #<HomeController:0xb4fd217c>
在 HomeController 我有:
class HomeController < ApplicationController
before_filter :authenticate_customer!
load_and_authorize_resource :class => false
def index
render 'index'
end
end
另外,在视图中:
- content_for :title, 'Home'
= link_to('Logout', destroy_customer_session_path, :method => :delete)
我没有在代码中的任何地方调用 current_user。
有什么想法吗?
【问题讨论】:
-
您的“authenticate_customer!”是什么?方法是什么样的?
-
这是设计的,我没有实现。
-
您使用的是 CanCan 还是其他与 Devise 交互的 gem?我特别提到 CanCan 是因为您可能必须根据 this GitHub issue 在您的
ApplicationController中创建一个current_ability方法。 -
请注意,一般情况下,引用
current_user的任何地方都需要更改为current_customer,但您说您没有在任何地方引用current_user。
标签: ruby-on-rails devise cancan