管理バックエンドに ActiveAdmin を使用するプロジェクトに取り組んでいます。
2 つのモデルがあります。1 つは、has_many Products の Book モデルです。ActiveAdmin で製品のインデックス ビューにアクセスしようとすると、books テーブル全体をメモリにロードしようとしているようです (私のデータベースには約 150 万冊の本があります)。CPU 使用率は 100% に達し、メモリ使用率はギガバイトに急増します。
mysql ロギングをオンにすると、このビューが呼び出されたときにこれが発生することが確認されます。
17 Query SELECT `books`.* FROM `books`
私が知る限り、これは製品をロードしようとする前に発生します。
この問題を解決するために、私はモデルを必要最小限まで取り除きました。
class Product < ActiveRecord::Base
belongs_to :book
end
class Book < ActiveRecord::Base
has_many :products
end
また、AA の定義を最も基本的な形式にまとめました。
ActiveAdmin.register Product do
end
これは ActiveAdmin では正常ですか? 望ましい動作とは思えません。