我正在使用 elasticsearch-rails gem,并且我的订单对象在创建时没有被完全索引。这是我的代码:
after_commit on: [:create] do
begin
__elasticsearch__.index_document
rescue
Rails.logger.error "Elastic Search error indexing new order."
end
end
def self.index_orders
Order.all.import force: true
end
def as_indexed_json(options={})
as_json(only: [:id, :transaction_id, :purchase_order_number, :status], include: [:order_addresses])
end
当我调用 self.index_orders 时,一切都按预期工作。但是,在创建订单时,after_commit 函数不会索引 order_addresses,因为它们是在 as_indexed_json 函数中指定的。
我还没有找到其他人有这个问题。有谁知道如何在 after_create 中索引 order_addresses?
更新
我还没有找到解决这个问题的方法。任何帮助,将不胜感激。