单表继承主动管理模型映射问题轨道4

Rab*_*zai 10 ruby ruby-on-rails activeadmin

我创建了一个具有单表继承的多用户,这里是我的模型

# user.rb 

class User < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)

这是用户模型,所有其他模型都是从数据库中的用户继承的,它们是一个模型,用于存储两种类型的用户并保存其类型

# customer.rb

class Customer < User
end

# space_owner.rb

class SpaceOwner < User
end
Run Code Online (Sandbox Code Playgroud)

**当我在活动管理栏中映射这些时,4显示错误**

Showing /home/rabnawaz/.rvm/gems/ruby-2.3.1/bundler/gems/activeadmin-0a5a15b88bff/app/views/active_admin/resource/index.html.arb where line #2 raised:

undefined method `chain' for nil:NilClass
Extracted source (around line #709):
  def chain
    @chain ||= begin
      a = source_reflection.chain
      b = through_reflection.chain
      chain = a + b
      chain[0] = self # Use self so we don't lose the information from :source_type
Run Code Online (Sandbox Code Playgroud)

这是我在创建活动管理员文件以显示用户时遇到的错误

你能给我一个解决方案吗?

这是我用于创建多个用户的设计路线

devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

devise_for :customers, :controllers => { 
    :registrations=>"customers/registrations", 
    :passwords=>"customers/passwords"
  },:skip => :sessions
  devise_for :space_owners, :controllers => { 
    :registrations=>"space_owners/registrations", 
    :passwords=>"space_owners/passwords"
  },:skip => :sessions
Run Code Online (Sandbox Code Playgroud)

Chr*_*bek 1

要给出引用https://github.com/activeadmin/activeadmin/issues/3957的答案:

经过一些研究,我发现当 active_record 无法自动推断嵌套关联的名称时,就会出现此错误。例如,可以使用 through嵌套关联来处理此问题。

从您的问题中也不清楚您是否确实使用 ActiveAdmin 注册了用户子类。