【发布时间】:2018-01-02 10:39:40
【问题描述】:
当我在我的应用程序中创建一个新的User 时,我运行一个after_create 方法,然后异步触发一个 Sidekiq 工作器。
这个工人...
def perform user_id
@user = ::User.find user_id
# ...
end
...总是返回以下错误:
ActiveRecord::RecordNotFound: 找不到 'id'=315928979197048617 的用户
但使用 rails 控制台检查用户 id 是否可找到:
User.find(315928979197048617)
=> #<User id: 315928979197048617>
这是因为新用户的创建需要一些时间并且工作人员在完成时已经执行了该方法吗?如果,我将如何解决这种行为?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-5 backgroundworker sidekiq