5

我在 ruby​​ on rails 应用程序中使用太阳黑子和acts_as_paranoid 宝石。

当我删除记录时,acts_as_paranoid gem 会覆盖 ActiveRecord 行为,而不是删除它,而是将deleted_at字段更新为非空值。默认情况下,添加到所有 AR 查询WHERE deleted_at IS NULL中。

我有很多被删除的用户。在管理面板页面中,我需要查看和搜索它们。

问题是在重新索引User模型时,sunspot 根本不索引已删除的用户(WHERE deleted_at IS NULL默认添加范围)。

索引它的唯一机会是手动运行

User.with_deleted.solr_reindex

所以,问题是:我应该如何更改我的代码,太阳黑子总是索引删除User模型中的记录?

class User < ActiveRecord::Base
  searchable do
    string  :class_name do
      self.class.name
    end

    integer(:model_id) { |user| user.id }
    integer :community_ids, references: 'Community', multiple: true

   # ...
  end

  # ...
end
4

0 回答 0