为什么我的自定义延迟作业在本地和Heroku上进行了不同的初始化?

时间:2013-03-13 12:35:10

标签: ruby-on-rails ruby-on-rails-3 heroku initialization delayed-job

我在延迟工作中有一份自定义工作:

class ImportJob < Struct.new(:my_datasource)
 include Apartment::Delayed::Job::Hooks

 def initialize(my_datasource)
  @database = Apartment::Database.current_database
  @my_datasource = my_datasource
 end

 def perform
  ...
 end
end

这在开发中很好用,但在Heroku上没有。

调试时,我发现在开发过程中变量databasemy_datasource已正确设置,但在生产中(在Heroku上),我有@database@my_datasource可用。

我无法理解为什么同一个类不会在两个环境中初始化相同的变量。

任何人都可以请光明并告诉我,如果我做错了什么?

1 个答案:

答案 0 :(得分:0)

不确定这是否是正确的解决方案,但我发现Heroku在使用1.9.3时使用的是Ruby 1.9.2。

在Heroku上升级到1.9.3解决了我的问题。