2015-12-19 5 views
0

Я пытаюсь сделать приложение с Rails 4 и разработать и Пандит (с rolify для ролей)Rails 4 с Разрабатывают и пандита - @user или @current_user

В:

class ApplicationPolicy 
    attr_reader :user, :record 

    def initialize(user, record) 
    @user = user 
    @record = record 
    end 

По к этому видео Go Go: https://gorails.com/episodes/authorization-with-pundit?autoplay=1

Этот раздел attr_reader в политике приложения охватывает все остальные политики - поэтому вам не нужно повторять в каждом из них.

Тем не менее, мой текущий вопрос задан, что я использую devuse, следует ли изменить политику приложения для использования current_user вместо пользователя? Например:

class ApplicationPolicy 
     attr_reader :current_user, :record 

     def initialize(current_user, record) 
     @current_user = current_user 
     @record = record 
     end 

Ни один из примеров, которые я нашел, не делает этого, но я не понимаю, почему нет.

Я надеялся выяснить, не сработал ли я перед тем, как начать писать правила для каждой политики. Является ли каждое действие контроллера, что я делаю политику для необходимости обращаться к пользователю, или я должен изменить все из них на current_user?

ответ

1

Вы можете использовать все, что хотите для авторизации.

Pundit отправит в current_user с вашего контроллера, когда вы вызовете что-то вроде authorize @object.

От вашего класса вам просто нужно будет выполнять свою логику с помощью current_user вместо пользователя.

Зачем вам это нужно изменить? С точки зрения ваших приложений вы действительно разрешаете пользователю что-то делать, а не обязательно current_user. Поэтому, сохраняя его как пользователь, следуйте соглашениям

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