Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 除活动工单外,是否有与ApplicationController等效的应用程序?_Ruby On Rails_Ruby_Rails Activejob - Fatal编程技术网

Ruby on rails 除活动工单外,是否有与ApplicationController等效的应用程序?

Ruby on rails 除活动工单外,是否有与ApplicationController等效的应用程序?,ruby-on-rails,ruby,rails-activejob,Ruby On Rails,Ruby,Rails Activejob,我正在Rails应用程序中使用ActiveJob,并试图添加一些应该由我的所有作业共享的通用功能(确切地说是异常处理) 例如— class MyAbstractJob < ActiveJob::Base rescue_from StandardError do |exception| # do exception handling stuff ... end end class FooJob < MyAbstractJob queue_as :my_queue

我正在Rails应用程序中使用
ActiveJob
,并试图添加一些应该由我的所有作业共享的通用功能(确切地说是异常处理)

例如—

class MyAbstractJob < ActiveJob::Base
  rescue_from StandardError do |exception|
    # do exception handling stuff ...
  end
end

class FooJob < MyAbstractJob
  queue_as :my_queue

  def perform *args
    # do job stuff ...
  end      
end
类MyAbstractJob
此模式类似于对控制器使用
ApplicationController
,它继承自
ActionController::Base
,并提供了实现任何控制器子类上可用的共享设施的地方

这实际上似乎在大多数情况下都有效,除了当我尝试调用
队列时:my_queue
——在这种情况下,我最终看到-

NoMethodError:for的未定义方法“queue\u as”


我在Rails文档中没有看到对这种特定模式的引用。有人知道这方面的好方法吗?

这很奇怪,我认为您的代码是正确的。我已经按原样测试了您的代码,没有更改任何内容,也没有发现任何问题:

FooJob.perform_later
# Performing FooJob from Inline(my_queue)
# Performed FooJob from Inline(my_queue) in 3.81ms
# Enqueued FooJob (Job ID: 6fd5ea5c-06bb-46d8-943c-8cc6f1e6ac33) to Inline(my_queue)
# => #<FooJob:0x0000000464de90 @arguments=[], @job_id="6fd5ea5c-06bb-46d8-943c-8cc6f1e6ac33", @queue_name="my_queue">
FooJob.perform\u稍后执行
#从内联(my_队列)执行FooJob
#在3.81毫秒内从内联(my_队列)执行FooJob
#将FooJob(作业ID:6fd5ea5c-06bb-46d8-943c-8cc6f1e6ac33)排队到内联(my_队列)
# => #
我已将这两个类放入
app/jobs
目录中

您在问题中显示的错误似乎与继承有关。您确定您的
FooJob
类确实继承了
MyAbstractJob
?也许您还需要重新加载Rails以确保安全


如果您的问题仍然存在,请发布真实的类代码,而不是简化的示例。

谢谢!这是真的,它实际上工作得很好。虫子在别处。