我有很多密切相关的ActiveJob辅助作业,并且由于每个作业都需要与一起运行perform,因此我想将它们放到一个文件夹名称空间中。
例如,假设我有:
app/jobs/hello_job.rb
app/jobs/goodbye_job.rb
app/jobs/thank_you_job.rb
Run Code Online (Sandbox Code Playgroud)
而且我称这些为HelloJob.perform_later。
我想拥有的是这样的:
app/jobs/greetings/hello_job.rb
app/jobs/greetings/goodbye_job.rb
app/jobs/greetings/thank_you_job.rb
Run Code Online (Sandbox Code Playgroud)
并以类似Greetings::HelloJob.perform_later..的名称致电给他们,尽管这不起作用。
小智 3
在ruby 中,您可以使用模块作为命名空间。
因此,您将密切相关的 ActiveJobs 放在一个文件夹中,并在与该文件夹同名的模块中定义每个类。
因为app/jobs/greetings/hello_job.rb这对我有用:
module Greetings
class HelloJob < ActiveJob::Base
queue_as :default
def perform
puts 'Hello!'
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
673 次 |
| 最近记录: |