私は管理バックエンドとしてActiveAdminを使用するプロジェクトに取り組んでいます。ActiveAdminが自動的にフルアソシエーションテーブルをロードする
私は2つのモデル、has_many製品を持つブックモデルを持っています。 ActiveAdminの製品インデックスビューにアクセスしようとすると、ブックテーブル全体をメモリに読み込もうとしているようです(私のデータベースには約150万冊の書籍があります)。 CPU使用率は100%に上がり、メモリ使用量はギガバイトにまで上がります。
17 Query SELECT `books`.* FROM `books`
私の知る限り、これは製品をロードしようとする前に発生言うことができるように:mysqlのログをオンにする
がこのビューが呼び出されたときに何が起こるかであることを確認します。私は自分の裸の骨までのモデルを剥奪、この問題を把握するために
:
class Product < ActiveRecord::Base
belongs_to :book
end
class Book < ActiveRecord::Base
has_many :products
end
私もその最も基本的な形にAAの定義を削減:
ActiveAdmin.register Product do
end
はActiveAdminため、この正常です?それは望ましい行動のようには見えません。
だけでした同じ問題、何千ものレコードが1つの愚かなドロップダウンのために引き上げられている-----私は手作業でフィルタの残りの部分を入力しなければならないという煩わしさを感じています。バックエンド! –