【发布时间】:2014-12-22 04:08:52
【问题描述】:
我已关注 EngineYard 的 getting started with active job 文章。文章称:
如果您想在默认情况下启用 Active Job,则需要 Rails 4.2.0beta1 或更高版本(在旧版本的 Rails 中,您可以将其作为 gem 使用)
我正在尝试在我的 Rails 4.1 项目中使用 ActiveJob。我将 ActiveJob 添加到我的 gemfile gem 'activejob'。根据文章,我有:
#config/initializers/active_job.rb
ActiveJob::Base.queue_adapter = :resque
但是,当我运行 rails server 时,我收到以下错误:
config/initializers/active_job.rb:1:in': 未初始化的常量 ActiveJob (NameError)`
编辑 - 修正错字“gem active job”
更新 1
按照下面 solydest 的建议,将 require 'active_job' 添加到 application.rb 使我不再收到 uninitialized constant ActiveJob 错误,而是在我尝试调用我的工作时收到错误 undefined method perform_later'。我正在关注edge rails guide 并使用类似于以下的代码将我的工作排入队列:
MyJob.perform_later(record)
我的工作课程的开始:
class MyJob < ActiveJob::Base
queue_as :images
def perform(id)
【问题讨论】:
-
宝石名称中不能有空格。这是
gem 'activejob'。 -
对不起,这是我的问题中的一个错字,实际上我的拼写正确,正如您在我的 gemfile 中列出的那样。我已经更新了问题。
-
好的,
bundle show activejob的输出是什么? -
/Users/marklar/.rvm/gems/ruby-2.1.2@rails4.1_app/gems/activejob-0
标签: ruby-on-rails rails-activejob