lui*_*gal 2 ruby-on-rails resque ruby-on-rails-4 rails-activejob
我在Rails 4.2和Resque中使用ActiveJob有点困难.
我已经安装了redis,并且已经将resque和resque-scheduler添加到我的Gemfile中.
我创建了一个测试作业 - 它只是生成的文件
rails g job test
Run Code Online (Sandbox Code Playgroud)
但我一直没有定义ActiveJob的错误
NameError: uninitialized constant ActiveJob
Run Code Online (Sandbox Code Playgroud)
当我像这样切换适配器时,或丢失方法
config.active_job.queue_adapter = :resque
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
/usr/local/lib/ruby/gems/2.1.0/gems/railties-4.2.0.beta1/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `active_job' for #<Rails::Application::Configuration:0x007f97ba98a5b8> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
我甚至看过源代码,但我不知道.它只是叫超级.
https://github.com/rails/rails/blob/master/railties/lib/rails/railtie/configuration.rb#L95
我错过了什么?为什么队列适配器不起作用?有谁知道如何解决这一问题?
我发现我选择了我正在使用的框架.
# config/application.rb
require "active_model/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "sprockets/railtie"
Run Code Online (Sandbox Code Playgroud)
修复它的方法是在application.rb文件中添加Active Job框架.
require "active_job/railtie"
Run Code Online (Sandbox Code Playgroud)
或者加载所有Rails
require 'rails/all'
Run Code Online (Sandbox Code Playgroud)
这似乎现在正在起作用.
| 归档时间: |
|
| 查看次数: |
2352 次 |
| 最近记录: |