1

在我当前的数据库设置中,我有一个用户和一个服务器表。我可以从 rails 控制台执行 current_user.server 之类的操作,但我无法从 resque worker 内部执行此操作。但是,由于我的 resque 工作人员中的这段代码,我能够调用 current_user.name:

current_user = User.find(current_id)

我可以通过将 current_user 的 id 传递给工作人员来做到这一点。我以为我可以对用户的服务器表使用相同的过程;这是一个 has_one 用户->服务器关系。

所以我尝试了这个:

current_server = Server.where(:user_id => current_user.id)
current_server[:cloudserver] = 123 #Just an example number
current_server.save

第一行工作正常,它返回了正确的服务器行。但是,当我还包括第二行时,我得到一个错误:

TypeError can't convert Symbol into Integer

我知道我将 cloudserver 列创建为整数类型,并确保我在 resque 工作人员中加载了 rails 环境。我可以使用 rails 控制台设置正确的数字:

current_user.server[:cloudserver] = 123
current_user.save

因为我可以将它设置在 resque worker 之外,所以我很确定这是一个 resque 问题。

哦,如果有帮助的话,我也在运行 rails 3.1rc4。谢谢大家!

4

0 回答 0