我正在开发一个使用 ActiveAdmin 作为其管理后端的项目。
我有两个模型,一个包含多个产品的 Book 模型。当我尝试访问 ActiveAdmin 中的产品索引视图时,它似乎尝试将完整的书籍表加载到内存中(我的数据库中大约有 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 来说正常吗?这似乎不是理想的行为。