0

我的 rails 应用程序中有两个模型(A,B),它们之间有一个共享模块(C):

# app/models/a.rb
class A < ActiveRecord::Base
  includes C

  ...
end

# app/models/b.rb
class B < ActiveRecord::Base
  includes C

  ...
end

# lib/c.rb
module C

...
end

这两种模型都由 ActiveAdmin 页面管理:

ActiveAdmin.register A do
  ...
end

ActiveAdmin.register B do
  ...
end

A 的 ActiveAdmin 页面运行良好。但是,B 会导致我的 rails 应用程序在启动时崩溃:

NameError: uninitialized constant B::C

当我注释掉 B 中的包含或删除 routes.rb 中的 ActiveAdmin 的路由设置时,该应用程序运行良好。两者都不是可接受的解决方案。

我意识到我的实际代码会更有帮助,但恐怕代码库不属于我。我会接受任何能引导我找到正确解决方案的调试想法。

4

1 回答 1

1

作为一种解决方法,您可以在C定义B.

于 2013-09-05T20:22:12.140 回答