【问题标题】:Activeadmin Destroy Record with Exception Elasticsearch::Transport::Transport::Errors::NotFound in Admin [404]Activeadmin 销毁记录异常 Elasticsearch::Transport::Transport::Errors::NotFound in Admin [404]
【发布时间】:2016-10-15 15:14:51
【问题描述】:

我在我的 Rails 应用程序 API 和 Post 模型中配置了 Elasticsearch,它工作正常,我使用 @post.destroy! 删除特定记录没有任何问题,但是当我通过 Activeadmin 面板销毁尝试相同时动作(我尝试了默认销毁动作和自定义控制器 -> 销毁动作),这里发生的事情是从数据库中正确删除记录,但删除后会引发异常

Elasticsearch::Transport::Transport::Errors::NotFound in Admin::PostsController#destroy

[404] {"found":false,"_index":"posts","_type":"post","_id":"1802","_version":1,"_shards":{"total":2,"successful":1,"failed":0}}

【问题讨论】:

    标签: ruby-on-rails elasticsearch


    【解决方案1】:

    我已经尝试了elasticsearch-model documentation 中提到的所有自定义回调,但我找到的唯一一种解决方案是使用begin .. rescue 语句:

    @deleted = false
    begin
      @post.destroy!
    rescue
      Post.find_by(:id => id).present? ? @deleted = false : @deleted = true
      #delete successful action here if @deleted == true
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多