我正在与客户现有的活动admin安装配合使用,并尝试使用名称空间添加其他用户组。我已经关注了这篇文章:
很不幸,我的行为有些奇怪。如果我去管理员,则可以按预期使用原始管理员帐户之一登录,但是状态栏中缺少我的注销按钮和电子邮件。如果我强制注销并转到/ users,那么即使我刚刚注销,也可以直接转到其仪表板。如果我注销他们的帐户或转到/ user / login,则可以重新登录到用户仪表板,但仅使用我的管理员帐户,它将不使用users表,最奇怪的是,该表在我的用户名中和注销按钮又回来了,但是它显示了从用户数据库中登录的最后一个用户,而不是刚刚登录的admin用户(我以前使用过用户视图,并且似乎正在记住该用户)。最后,由于我正在获取“未定义的方法'superadmin?',我的current_user对象似乎为零。 for nil:NilClass”,当我测试创建的自定义属性时。
似乎这些config变量不是由不同的名称空间统一设置的,它们在某种程度上相互叠加。任何帮助将不胜感激。...
这是我的active_admin.rb:
ActiveAdmin.setup do |config|
#config.current_user_method = :current_user
# config.logout_link_path = :destroy_user_session_path
config.batch_actions = true
config.load_paths = [File.expand_path('app/admin', Rails.root), File.expand_path('app/users', Rails.root),]
#config.default_namespace = :admin
config.namespace :admin do |admin|
admin.site_title = "Checkin Admin"
admin.authentication_method = :authenticate_admin_user!
admin.logout_link_path = :destroy_user_session_path
admin.current_user_method = :current_user
end
config.namespace :users do |users|
# c.authentication_method = :logged_in?
users.site_title = "Checkins"
users.current_user_method = :current_user
users.logout_link_path = :destroy_user_session_path
end
end
这是我的路线:
CheckinAdmin::Application.routes.draw do
devise_for :users, ActiveAdmin::Devise.config.merge({path: '/users'})
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
这是我的用户的架构,它与admin_user相同:
# frozen_string_literal: true
class DeviseCreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.inet :current_sign_in_ip
t.inet :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at
t.timestamps null: false
end
add_index :users, :email, unique: true
add_index :users, :reset_password_token, unique: true
# add_index :users, :confirmation_token, unique: true
# add_index :users, :unlock_token, unique: true
end
end
请让我知道我可以提供的其他信息。