activeadmin уничтожает пакетное действие и перестраивает pg_search

Я работаю над веб-приложением Rails. У меня есть записи в модели с именем AcademicPaper, которые я удалил с помощью функции уничтожения пакетных действий, которая поставляется с activeadmin. Сразу после того, как я это сделал, я заметил, что в методе контроллера, использующем pg_search драгоценный камень, возникла ошибка ActiveRecord для модели AcademicPaper.

Я понял, что pg_search не синхронизированы с ActiveRecords. Поэтому решение для меня состояло в том, чтобы запустить PgSearch::Multisearch.rebuild(AcademicPaper) в консоли rails, что я и сделал, и это сработало.

Мой вопрос: как я могу избежать этой ошибки в производственной среде и, возможно, перестроить индекс pg_search каждый раз, когда происходит пакетное действие active_admin?


person Mahmoud Mousa Hamad    schedule 19.01.2020    source источник


Ответы (1)


Прямо из Документация активного администратора

Если вы хотите, вы можете переопределить пакетное действие по умолчанию, чтобы делать все, что хотите:

ActiveAdmin.register Post do
  batch_action :destroy do |ids|
    super
    PgSearch::Multisearch.rebuild(AcademicPaper) 
  end
end
person Gautam    schedule 19.01.2020
comment
Я принимаю ваш ответ, но было бы здорово, если бы я мог сделать это только в одном месте, чтобы мой код оставался СУХИМ. У Вас есть какие-то предложения? - person Mahmoud Mousa Hamad; 20.01.2020