轮胎弹性搜索:从模型中删除记录并立即重定向会引发错误

时间:2013-04-10 11:09:16

标签: ruby-on-rails tire

我有一个名为User的模型。当我销毁用户并重定向到用户的索引页面时,它会抛出异常 ActiveRecord::RecordNotFound: Couldn't find all Users with IDs (1, 200) (found 1 results, but was looking for 2) 但是当我刷新页面时,页面正确加载并显示所有用户。我想问题是Tire::Model::Callbacks after_destroy需要一些时间来执行,如果我在该时间段内调用User.search_all,搜索结果包括销毁的id。 我正在寻找一种清洁方法来克服这个问题。或者Tyre有没有办法解决这个问题? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

在调用User.search_all之前向Elasticsearch发送刷新调用。 Elasticsearch refresh_interval默认为1秒,因此如果您从中删除并在一秒钟内进行搜索,则可能无法在将结果返回给您之前删除已删除的记录。