Pracuję nad projektem, który używa ActiveAdmin do zaplecza administracyjnego.ActiveAdmin automatycznie ładuje pełną tabelę skojarzeń
Mam dwa modele, model Book, który ma wiele produktów. Kiedy próbuję uzyskać dostęp do widoku indeksu produktów w ActiveAdmin, wydaje się, że próbuję załadować pełną tabelę książek do pamięci (w mojej bazie danych znajduje się około 1,5 miliona książek). Wykorzystanie procesora wzrasta do 100%, a zużycie pamięci rośnie do gigabajtów.
Włączanie rejestrowania mysql potwierdza, że to co się dzieje, gdy pogląd ten nazywa się:
17 Query SELECT `books`.* FROM `books`
O ile mogę powiedzieć, to dzieje się przed każdą próbą załadowania produktów.
Aby dowiedzieć się ten problem rozebrałem modeli do swoich gołych kości:
class Product < ActiveRecord::Base
belongs_to :book
end
class Book < ActiveRecord::Base
has_many :products
end
ja również zmniejszona definicję AA do swojej najbardziej podstawowej formie:
ActiveAdmin.register Product do
end
Czy to normalne dla ActiveAdmin ? Nie wydaje się pożądanym zachowaniem.
prostu miał ten sam problem, 10s tysięcy rekordów jest zatrzymanych dla jednego głupiego dropdown -_- Trochę irytujące, że muszę ręcznie wprowadzić ponownie pozostałe filtry, to najwyraźniej wszystkie niestandardowe lub niestandardowe, ale cokolwiek - bije awarie backend! –