1

ActiveAdmin を既に Admin モデル* を持つ Rails アプリにインストールしようとしましたが、Admin クラスにアクセスする必要があるコードを実行しようとするまで (仕様の実行や Rails サーバーの実行など)、すべてが機能します。問題が私の Admin クラスにあるかのように失敗します。

foo/app/models/admin.rb:1:in `<top (required)>': Admin is not a class (TypeError)
from bar/.rvm/gems/ruby-1.9.2-p320/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require'

*私の場合、管理者モデルを再利用できるように --skip-users を使用しましたが、これを行うかどうかに関係なく発生します。次の場合にも発生します。

rails generate active_admin:install Admin

ActiveAdmin を Admin というモデル (または他のクラス) と共存させるにはどうすればよいですか?

4

1 に答える 1

4

これを解決するのにしばらく時間がかかりました (以前のプロジェクトでは、モデルの名前を変更しただけです)。

いくつかのパッチが提案されていますが、実際にはこれを修正する完全に優れた構成オプションがあります。

default_namespace が異なるように初期化子を編集しますconfig/initializers/active_admin.rb( で default_namespace をスキップできますが、config.default_namespace = false試したことはありません)。

これには admin_ui を選択しました。

 config.default_namespace = :admin_ui

これにはもっと微妙なことがあるので、(必要に応じて) admin_ui ではなく /admin/ ルートを維持できますが、これで十分でした-これに関する公式ドキュメントはhttp://activeadmin.info/docsにあります/1-general-configuration.html#namespacesですが、名前空間を変更する理由については言及しないでください。

于 2013-01-23T12:00:24.307 に答える