【问题标题】:activeadmin destroy batch action and pg_search rebuildactiveadmin 破坏批处理操作和 pg_search 重建
【发布时间】:2020-01-19 01:11:17
【问题描述】:

我正在开发一个 Rails 网络应用程序。我在一个名为AcademicPaper 的模型中有记录,我使用activeadmin 附带的批处理操作销毁功能删除了这些记录。就在我这样做之后,我注意到在使用 pg_search gem 的控制器方法中,AcademicPaper 模型出现了 not found ActiveRecord 的错误。

我意识到pg_search 没有与ActiveRecords 同步。因此,我的解决方案是在 rails 控制台中运行 PgSearch::Multisearch.rebuild(AcademicPaper),我这样做了,它奏效了。

我的问题是:如何在生产环境中避免此错误,并在每次发生active_admin 批处理操作时重建pg_search 索引?

【问题讨论】:

    标签: ruby-on-rails activeadmin pg-search


    【解决方案1】:

    直接来自Active Admin Documentation -

    如果你愿意,你可以覆盖默认的批处理操作来做任何你想做的事情:

    ActiveAdmin.register Post do
      batch_action :destroy do |ids|
        super
        PgSearch::Multisearch.rebuild(AcademicPaper) 
      end
    end
    

    【讨论】:

    • 我接受你的回答,但如果我能在一个地方这样做以保持我的代码干燥,那就太好了。你有什么建议吗?
    • 当我尝试运行它时,它会因NoMethodError: super called outside of method 而崩溃。
    猜你喜欢
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多