Если у вас уже есть созданная таблица users
, то вам следует пропустить ее создание.
Продолжительность:
rails generate active_admin:install --skip-users
И не забудьте запустить:
bundle exec rake db:migrate
Попытайтесь изменить метод аутентификации в файле config/initializers/active_admin.rb
. Также убедитесь, что у вас создан метод current_admin_user
, если вы этого не сделаете, вы можете просто изменить его на значения по умолчанию (метод current_user
).
Вам потребуется изменить метод http, используемый в ссылке на выход, на :delete
.
config.logout_link_method = :delete
И путь к действию выхода из системы.
config.logout_link_path = :destroy_user_session_path
Чтобы лучше понять метод аутентификации, я вставляю свой app/controllers/application_controller.rb
соответствующий код:
class ApplicationController < ActionController::Base
protect_from_forgery
#
# redirect registered users to a profile page
# of to the admin dashboard if the user is an administrator
#
def after_sign_in_path_for(resource)
resource.role == 'admin' ? admin_dashboard_path : user_path(resource)
end
def authenticate_admin_user!
raise SecurityError unless current_user.try(:role) == 'admin'
end
rescue_from SecurityError do |exception|
redirect_to root_path
end
end
Надеюсь, это поможет вам и возможно кому-то еще.