0

Rails アプリに 2 つのモデル (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