ActiveAdmin has_many 通过 - nil:NilClass 的未定义方法“klass”

ActiveAdmin has_many through - undefined method `klass' for nil:NilClass

试图弄清楚为什么 ActiveAdmin 对我不利,感谢您的帮助。

编辑:结果我 运行 自己陷入了 x-y problem 的境地。我向 SO 社区道歉...

我认为 has_many :venue_rps 关系是罪魁祸首,但后来我发现这是另一个问题。请在下面查看此问题的更新版本:

我的模特:

class Venue < ActiveRecord::Base
  belongs_to :nightclub
  has_one :nightclub_boss, through: :nightclub

  belongs_to :rp_boss

  has_many :memberships
  has_many :rps, through: :memberships

  belongs_to :captain

  has_many :reservations
  has_many :payments, through: :reservations

  has_many :cutoffs
  has_many :cutoff_payments, through: :cutoff

  has_many :favorites

  has_many :schedules
end

class Membership < ActiveRecord::Base
  belongs_to :venue, dependent: :destroy
  belongs_to :rp, dependent: :destroy
end

class Rp < User
  has_many :memberships
  has_many :venues, through: :memberships

  has_many :nightclubs, through: :venues
  has_many :nightclub_bosses, through: :nightclubs

  has_many :rp_bosses, through: :venues
  has_many :captains, through: :venues

  has_many :reservations
  has_many :payments, through: :reservations

end

编辑:阅读下面我之前的解释,否则我通过执行以下操作解决了这个问题:

我有:

has_many :cutoffs
has_many :cutoff_payments, through: :cutoff

需要将其设为复数:

has_many :cutoffs
has_many :cutoff_payments, through: :cutoff*s*

在那之后异常就消失了。

万一您 运行 在 activeadmin 中遇到另一个问题,例如:

undefined method `memberships_id_eq' for Ransack::Search<class: Venue, base: Grouping <combinator: and>>:Ransack::Search

只需删除 membership has_many through: 模型的 运行sack 过滤器。对于这个用例,没有必要通过它来过滤我的信息,因此我只是删除了它。

[OLD] 解释:我需要将许多 Rps 分配给某个 Venue,并将许多 venue 分配给某个 Rp,所以我使用了一个由 join [=76= 支持的 join 模型(venue_rp) ] 来模拟此信息。

到目前为止一切顺利,它在 rails 控制台上运行得非常棒。

但是我需要为管理员用户提供 CRUD 数据的表单,所以我采用了 ActiveAdmin 方式。所以我继续注册我的 Venue 模型:

ActiveAdmin.register Venue do

  scope_to :current_user, if: proc{ current_user.is_nightclubboss? }
  menu priority: 3

end

想法是超级管理员将能够看到应用程序中的所有信息,而夜总会老板只会看到与他们有关的信息。

到目前为止一切顺利,我期待我会在 venues 中看到 activeadmin 的默认索引和表单(Sucursales 在以下屏幕截图中表示 Venues):

但是当我点击 activeadmin 菜单中的 Venues 条目时,我 运行 进入反射问题:

我试过的是重写关联,到目前为止还没有成功。我是不是做错了什么?

我 运行 遇到这种情况的 x-y 问题。

问题与问题无关。