Mongoid Search Gem不更新关联关键字



我有一个电子商务应用程序,其中我使用mongoid搜索来搜索订单及其用户关联。这是我的模型。

order.rb
class Order
include Mongoid::Document
include Mongoid::Search
belongs_to :user
search_in user: %i[first_name last_name email_address]
end
user.rb
class User
include Mongoid::Document
include Mongoid::Search
has_many :orders
search_in :email_address, :first_name, :last_name
end

基本上,使用搜索的最终目标是通过用户的名、姓和电子邮件地址找到用户的订单。在初始传递中,我可以创建一个用户和订单,并填充mongoid用于搜索的keywords

但是,如果我更新一个用户的名、姓或电子邮件地址,Order的关键字不会得到更新。因此,搜索中断,准确性下降。

根据文档,我可以执行以下命令rake mongoid_search:index,关键字将再次使用正确的关键字填充。

但是,在生产环境中,我不能每次有变化时都运行这个命令。我需要它自动更新。是否有什么我做错了,如果我更新相关对象的关键字不会改变?

查看源代码,您应该能够保存受影响的模型(例如,在更改用户后,查找&保存他们所有的订单),关键字将自动更新。

最新更新