Ruby on Rails - разработчик и активный администратор единой модели HABTM

Я использую рельсы 3.2, и у меня возникают проблемы с использованием предварительно созданного устройства вместе с активным администратором, использующим одну модель и отношение HABTM к ролевой модели.

Я следовал этому руководству http://jaysonlane.net/2012/04/rails-devise-and-active-admin-single-user-model

И изменили несколько вещей, таких как

unless current_user.admin?

за

unless current_user.roles.first.id==1 #checks if its an admin or not

Если я вхожу в систему с обычным пользователем и пытаюсь получить доступ к странице администратора через:300/admin, я получаю "Отказано в доступе", и это хорошо.

Однако, если я войду в систему с учетной записью администратора (она успешно регистрируется как администратор) и перейду по адресу:3000/admin, отобразится сообщение об ошибке:

NoMethodError in Admin/dashboard#index
undefined method for 'destroy_admin_user_session_path'

изменив его на:

config.logout_link_path = :destroy_current_admin_user_session_path
or
config.logout_link_path = :destroy_current_user_session_path

тоже не поможет

Заранее спасибо за помощь

ФИКСИРОВАННЫЙ:

Пришлось бежать rake routes и измените путь и методы инициализатора defaut active_admin к моим маршрутам.

Что касается ошибки при выходе из системы, по-видимому, по умолчанию метод выхода из системы с активным администратором: get. Поэтому возникает ошибка при нажатии "Выйти" в активном администраторе. Чтобы это исправить, зайдите в config->initializers->active_admin.rb и добавьте

config.logout_link_method= :delete

Надеюсь, это кому-нибудь поможет.

Еще раз спасибо @pjammer и @iain за помощь в правильном направлении. С уважением

1 ответ

Решение

Пришлось запустить грабли маршруты и изменить путь инициализатора defaut active_admin и методы для моих маршрутов.

Что касается ошибки при выходе из системы, по-видимому, по умолчанию метод выхода из системы с активным администратором: get. Поэтому возникает ошибка при нажатии "Выйти" в активном администраторе. Чтобы это исправить, зайдите в config->initializers->active_admin.rb и добавьте

config.logout_link_method=:delete Надеюсь, это кому-нибудь поможет.

Еще раз спасибо @pjammer и @iain за помощь в правильном направлении. С уважением

Другие вопросы по тегам