如何通过命名空间组织边工作

时间:2016-02-11 04:18:16

标签: ruby-on-rails

我有很多密切相关的ActiveJob边工作,因为每个人都需要与app/jobs/hello_job.rb app/jobs/goodbye_job.rb app/jobs/thank_you_job.rb 一起运行,我想把它们放在一个文件夹命名空间中。

例如,让我们说:

HelloJob.perform_later

我将其中的每一个称为app/jobs/greetings/hello_job.rb app/jobs/greetings/goodbye_job.rb app/jobs/greetings/thank_you_job.rb

我想要的是:

Greetings::HelloJob.perform_later

并使用类似LINQ to Entity的内容来调用它们....虽然这不起作用。

1 个答案:

答案 0 :(得分:2)

ruby​​ 中,您可以将模块用作名称空间

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

对于app/jobs/greetings/hello_job.rb,这对我有用:

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

    def perform
      puts 'Hello!'
    end
  end
end