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 за помощь в правильном направлении. С уважением