Моему приложению требуется одна модель для Devise и Active Admin для пользователя, и я хочу различать супер-администратора, администратора и пользователя в зависимости от роли, которая присутствует в модели профиля, и я следовал по по этой ссылкеДэн Доэзема .Пожалуйста, помогите мне, поскольку я новичок в мире рельсов и не знаю, что делать в этой проблеме.Я удалил пользователя admin, который был создан по умолчанию.Мой файл user.rb в папке app / admin:
ActiveAdmin.register User do
form do |f|
f.inputs "User Details" do
f.input :email
end
f.buttons
end
end
Здесь я использовал пользователя, потому что я хочу использовать пользователя, сгенерированного устройством.Мой файл users.rb в app / admin:
ActiveAdmin.register User do
permit_params :email
index do
selectable_column
id_column
column :email
column :current_sign_in_at
column :sign_in_count
column :created_at
actions
end
filter :email
filter :current_sign_in_at
filter :sign_in_count
filter :created_at
form do |f|
f.inputs do
f.input :email
end
f.actions
end
end
Я не изменил файл dashboard.rb в app / admin.Файл application_controller.rb:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def authenticate_admin_user!
authenticate_user!
unless current_user.profile.role == 'super_admin'
flash[:alert] = "Unauthorized Access!"
redirect_to root_path
end
end
end
Я удалил следующий маршрут из файлаways.rb
devise_for :admin_users, ActiveAdmin::Devise.config
Я также уничтожил модель AdminUser