Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 如何按名称空间组织辅助作业_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何按名称空间组织辅助作业

Ruby on rails 如何按名称空间组织辅助作业,ruby-on-rails,Ruby On Rails,我有很多密切相关的ActiveJob端作业,由于每个作业都需要使用perform,因此我想将它们放在一个文件夹名称空间中 例如,假设我有: app/jobs/hello_job.rb app/jobs/goodbye_job.rb app/jobs/thank_you_job.rb 我把它们分别称为HelloJob.perform\u 我想要的是: app/jobs/greetings/hello_job.rb app/jobs/greetings/goodbye_job.rb app/job

我有很多密切相关的ActiveJob端作业,由于每个作业都需要使用
perform
,因此我想将它们放在一个文件夹名称空间中

例如,假设我有:

app/jobs/hello_job.rb
app/jobs/goodbye_job.rb
app/jobs/thank_you_job.rb
我把它们分别称为HelloJob.perform\u

我想要的是:

app/jobs/greetings/hello_job.rb
app/jobs/greetings/goodbye_job.rb
app/jobs/greetings/thank_you_job.rb

然后用类似于“问候语::HelloJob.perform_”的话给他们打电话。。。。尽管这不起作用。

ruby中,您可以使用模块作为名称空间

因此,您将密切相关的ActiveJobs放在一个文件夹中,并在一个模块中使用与文件夹相同的名称定义每个类

对于
app/jobs/greetings/hello_job.rb

module Greetings
  class HelloJob < ActiveJob::Base
    queue_as :default

    def perform
      puts 'Hello!'
    end
  end
end
模块问候语
类HelloJob
你有没有想过这一点。有类似的问题。