Ruby on rails 执行更新时,轮胎(elasticsearch)未更新
我正在使用ruby on rails中的轮胎连接ElastiSearch 当我使用Ruby on rails 执行更新时,轮胎(elasticsearch)未更新,ruby-on-rails,
elasticsearch,tire,Ruby On Rails,
elasticsearch,Tire,我正在使用ruby on rails中的轮胎连接ElastiSearch 当我使用update\u attributes修改元素的参数时,Tire会自动更新索引以反映此更改 但是,当我通过执行update\u all同时修改多个元素时,Tire不会更新索引,它会与我的数据库不同步 这是轮胎里的虫子吗?是否有解决办法?根据: 如果符合提供的一组条件,则更新所有记录并提供详细信息,还可以提供限制和订单。此方法构造单个SQL UPDATE语句并将其直接发送到数据库。它不会实例化涉及的模型,也不会触发活
update\u attributes
修改元素的参数时,Tire会自动更新索引以反映此更改
但是,当我通过执行update\u all
同时修改多个元素时,Tire不会更新索引,它会与我的数据库不同步
这是轮胎里的虫子吗?是否有解决办法?根据:
如果符合提供的一组条件,则更新所有记录并提供详细信息,还可以提供限制和订单。此方法构造单个SQL UPDATE语句并将其直接发送到数据库。它不会实例化涉及的模型,也不会触发活动记录回调
所以轮胎不会更新任何东西,因为回调不会被调用
你必须:
a) 使用find_each
并调用save
方法
b) 使用
更新\u all
,然后进行完整的重新索引。您是否已在github上提交轮胎问题?Karmi非常擅长回答it问题,并就可能的解决方案进行头脑风暴。我喜欢(a),因为您想要的功能似乎涉及更新Rails对象,而不是直接的SQL更新调用。除了重新索引外,您可能还希望在对象上发生其他事情。