无法在resque中使用ActiveRecord生成的方法

时间:2011-07-10 17:38:29

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 resque

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

current_user = User.find(current_id)

我能够通过将current_user的id传递给worker来完成此操作。我以为我可以对用户的服务器表使用相同的过程;它是一个has_one user->服务器关系。

所以我尝试了这个:

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 worker中加载了rails环境。我可以使用rails控制台设置正确的数字:

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

由于我可以将它设置在resque工作者之外,我很确定这是一个resque问题。

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

0 个答案:

没有答案