Rails ActiveAdmin Profile(User)

11 浏览
0 Comments

Rails ActiveAdmin Profile(User)

这可能很简单,但是我需要明确一下。

我已经有一个Active Rails模型Profile(表示用户),所以devise已经在使用该模型Profile。

我知道active admin与devise集成,但是我如何生成active_admin来使用我现有的Profile,以便我可以在后台管理所有的Profile(用户)?

Profile.rb

class Profile < ApplicationRecord
  is_impressionable
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :confirmable
            has_many :ads, dependent: :destroy 
end

routes.rb

Rails.application.routes.draw do
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)
  devise_for :profiles
  resources :profiles
  resources :ad
  root 'motors#index'
end

我还阅读了active admin文档,其中提到

如果要使用现有的用户类,请将其作为参数提供:

rails g active_admin:install User

因此我尝试了:

rails g active_admin:install Profile 但没有成功。

0
0 Comments

Rails ActiveAdmin Profile(User)问题的原因是用户想要在ActiveAdmin中使用名为Profile的模型,而不是默认的User模型。然而,他们已经有了一个名为Users的模型。为了解决这个问题,他们需要使用已经存在的Users模型,或者重新创建一个名为Profile的模型。

作者建议不要尝试将Users模型重命名为Profile模型,因为这样可能会导致其他问题。相反,如果这是一个相对较新的应用程序,作者建议销毁Users模型(或脚手架),并创建一个具有所需名称的新模型。

一旦确定要使用的模型,根据ActiveAdmin文档,可以运行以下命令生成ActiveAdmin资源:

rails generate active_admin:resource MyModel

然而,作者指出,尝试为两个模型安装ActiveAdmin是没有意义的。可以为两个模型使用Devise,但不能在ActiveAdmin中使用两个模型。相反,作者建议在同一个模型中创建不同的管理员角色。因此,他建议销毁Users的ActiveAdmin设置,并重新运行Profile的ActiveAdmin安装命令:

rails destroy active_admin:install

rails destroy active_admin:resource user

最后,作者感谢帮助解决问题,并指出ActiveAdmin用户与Rails普通用户是完全分离的。

0