我有一个像这样的Sidekiq工人:
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的控制器关注内的方法。
有没有办法在工人阶级中包含这个问题?其实我没试过就试过了:
要求“可打印” 包括可打印
提前感谢。
答案 0 :(得分:3)
你没有提到你的目录结构,但我猜:
然后你需要做
require 'concerns/printable'
请注意,缺少其他路径,例如“控制器” - Rails实际上并不关心[thing]
结构中的app/[thing]/
关注点。它可能位于models/concerns
或controllers/concerns
- 无论哪种方式,require 'concerns/my_concern'
它都可以正常工作。
您应该阅读this info here on how Rails (v3) loads paths。
注意:在Rails 4中测试
答案 1 :(得分:0)
在Rails 5.2应用程序中,require 'concerns/printable'
对我不起作用,但是include Printable
对我有用。例如
class PrintWorker
include Sidekiq::Worker
include Printable
...
end