2016-03-18 2 views
0

Я строй приложения, которое в настоящее время имеет простую авторизацию: ТРЕБОВАНИЯне смогли найти Scope NilClassPolicy :: Scope для NilClass

Все пользователи могут просматривать данные все контроллеры. Только администратор может создавать/редактировать данные. Проект использование админ камень поэтому никакие контроллеры в моем приложении (хотя я могу overide при необходимости) Я хотел бы добавить разрешения для общего требования для всех контроллеров:

class ApplicationController < Administrate::ApplicationController 
    before_filter :authenticate_admin 
    def authenticate_admin 
    authorize requested_resource # requested_form is the relevant object(e.g. Post @post) 
    end 
end 

, но затем я получаю следующее:

не удалось найти область действия NilClassPolicy :: Область применения для NilClass app/policies/application_policy.rb: 41: в области видимости/политики/application_policy.rb: 15: inshow? ' приложение/контроллеры/admin/application_controller.rb: 27: in `authenticate_admin '

Похоже, что он не может найти политику, что вы думаете?

+0

Вы когда-нибудь находили решение этого вопроса? – edwardmp

ответ

0

Я не уверен, что вам по-прежнему нужна помощь в этом конкретном вопросе, но так как я нашел его во время исследования для очень похожего вопроса, я решил, что все равно буду вкладывать свои два цента, потому что мне удалось выяснить, Причина, по которой я получаю подобное исключение.

я ошибочно называют авторизации в мой контроллер т.е .:

# customer_contoller.rb 
def show 
    authorize @customer 
end 

Тем не менее, я не создал соответствующий def show? метод в customer_policy.rb. Все, что мне нужно было сделать, это создать соответствующее шоу? метод, и это сработало!

Таким образом, я бы предположил, что это исключение вызвано несоответствием между авторизацией вызова в контроллере и политиками, которые вы установили. В частности, если вы не создали политику для действия, которое вы запрашиваете для авторизации.

Надежда, которая помогает кому-то хотя бы двигаться в правильном направлении.

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

  • Нет связанных вопросов^_^