0

我将 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。

有任何想法吗?

4

1 回答 1

3

CanCan 对您的应用程序做了两个假设。

  • 您有一个定义权限的能力类。
  • 您在控制器中有一个 current_user 方法,该方法返回当前用户模型。

您可以通过在 ApplicationController 中定义 current_ability 方法来覆盖这两者。

https://github.com/ryanb/cancan/wiki/Changing-Defaults

于 2013-03-16T14:19:08.563 回答