我在我的一个项目中使用了公寓宝石。我需要在每个租户中记录一种特定类型的活动。为此,我创建了一个排除模型,并在活动发生的操作中添加了记录它的函数。由于我尝试记录的数据,运行此方法时会运行大量查询。因此,我决定将其移至背景工作者(Sidekiq)。但是,当工人说它的错误就像是。
nil类的未定义方法名称
现在提供此错误的代码是post.author.name
。
如果我们直接调用它,这段代码可以正常工作,但是当我们通过sidekiq执行时,它会中断。此问题是否曾发生在其他人之前?任何已知的解决方案?
工作人员代码是
def perform(post_id, subdomain)
LogTransaction.create_post(post_id, subdomain)
end
LogTransaction.create_post
def self.create_post post_id, subdomain
post = Post.find(post_id)
Apartment::Tenant.switch('public')
create(post_name: post.name, subdomain: subdomain, author_name: post.author.name)
end
答案 0 :(得分:2)
在您的应用程序中使用此gem,此gem将存储启动作业的模式,并将在该模式中运行。