Нужна помощь в настройке CanCanCan для activeadmin

Мне нужна помощь в настройке CanCanCan с помощью ActiveAdmin. У меня все остальное работает, включая devise. Я могу ограничить меню с помощью devise, но если вы знаете, что URL-адрес позволяет редактировать, вы все равно можете редактировать этот ресурс. Я хочу запретить обычному пользователю редактировать / создавать какие-либо ресурсы, но, похоже, это не работает.

Active_Admin.rb

config.cancan_ability_class = ActiveAdmin::CanCanAdapter

Ability.rb (просто из коробки)

class Ability
  include CanCan::Ability

  def initialize(user)
    # Define abilities for the passed in user here. For example:
    #
      # user ||= User.new # guest user (not logged in)
      if user.admin?
        can :manage, Student
      else
        can :read, Student
      end
end
end

Модель пользователя.

admin:boolean 

и если я вхожу в систему с пользователем, который не является администратором, я все равно могу создавать / редактировать / удалять, я просто хочу ограничить их доступ только для чтения.

Пожалуйста, помогите, я борюсь с этой единственной функцией, которую мне нужно завершить.

заранее спасибо


person Waqas    schedule 11.11.2016    source источник


Ответы (1)


Измените это мышление:

config.authorization_adapter = ActiveAdmin::CanCanAdapter
config.cancan_ability_class = Ability

authorization_adapter сообщает активному администратору, какой адаптер он должен использовать. cancan_ability_class сообщает адаптеру, какой класс он должен использовать.

Если это по-прежнему не работает, попробуйте переименовать Ability в AdminAbility.

person Timo Schilling    schedule 11.11.2016
comment
Спасибо, что вернулись. Я добавил класс способности, но теперь он переходит в бесконечный цикл и говорит, что localhost не запущен, хотя это и есть. Я также переименовал класс в AdminAbility, но он дает мне неинициализированную константу AdminAbility (NameError) при запуске сервера. - person Waqas; 11.11.2016
comment
эй, просто чтобы вы знали, после того, как я поигрался с ним еще, у меня он заработал, ваш ответ правильный, у меня как раз была белая страница, и когда я проверил журналы, он сказал, что для этой страницы нет разрешения, я подумал, что это цикл но это было не так. Спасибо - person Waqas; 15.11.2016