0

我有一个像这样的 Sidekiq Worker:

class PrintWorker
  include Sidekiq::Worker

  def perform(action,data)
    parsed_data = JSON.parse(data)
    if action=="tiquet"
      print_tiquet(parsed_data)
    elsif action=="summary"
      print_summary(data[0],data[1])
    end
  end
end

“print_tiquet”和“print_summary”是控制器关注点内的方法,称为Printable。

有没有办法将这种担忧包含在工人阶级中?其实我试过没有运气:

要求“可打印”包括可打印

提前致谢。

4

2 回答 2

3

你没有提到你的目录结构,但我猜:

  • 控制器
    • 担忧
      • 可打印的.rb
  • 工作人员
    • print_worker.rb

然后你需要做

require 'concerns/printable'

请注意缺少诸如“控制器”之类的附加路径——Rails 实际上并不关心[thing]app/[thing]/关注的结构中的哪个。它可能是models/concernscontrollers/concerns- 无论哪种方式,require 'concerns/my_concern'它都会起作用。

您可能应该在此处阅读有关 Rails (v3) 如何加载路径的信息

注意:在 Rails 4 中测试

于 2015-06-11T15:32:57.807 回答
0

在 Rails 5.2 应用程序中,require 'concerns/printable'对我不起作用,但include Printable确实起作用。例如

class PrintWorker
  include Sidekiq::Worker
  include Printable

  ...
end
于 2020-05-12T16:12:34.760 回答