2013-03-15 3 views
0

Я использую Rails 3.2, Devise и Cancan для приложения с 3 категориями пользователей: компаниями, клиентами и админами.Метод current_user не найден (Rails, Devise, Cancan)

Моя проблема заключается в том, что я получаю это:

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 где-нибудь в моем коде.

Любые идеи?

+0

Что делает ваш "authenticate_customer!" метод выглядит? – cpuguy83

+0

Это от разработки, я не реализовал его. – cgf

+0

Вы используете CanCan или какой-нибудь другой камень, который взаимодействует с Devise? Я упоминаю CanCan специально, потому что вам может понадобиться создать метод 'current_ability' в вашем' ApplicationController', по [этой проблеме GitHub] (https://github.com/ryanb/cancan/issues/598). –

ответ

3

CanCan делает два предположения относительно вашего приложения.

  • У вас есть класс способности, который определяет разрешения.
  • У вас есть метод current_user в контроллере, который возвращает текущую модель пользователя.

Вы можете переопределить оба этих параметра, указав метод current_ability в вашем ApplicationController.

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

+0

Я принесу некоторую обратную связь. Мой ответ решил вашу проблему? – cthulhu

Смежные вопросы