这是我的ApplicationController
控制器:
class ApplicationController < ActionController::Base
helper_method :is_admin?
def is_admin?
...
end
end
我正在尝试在Sidekiq工作者中使用此助手is_admin?
。到目前为止,我在那里包括这个:
class GenerateInvoiceWorker
include Sidekiq::Worker
def perform(product_id)
av = ActionView::Base.new()
av.view_paths = ActionController::Base.view_paths
av.class_eval do
include Rails.application.routes.url_helpers
include ApplicationHelper
end
...
end
end
如何在工作者中使用辅助方法?
由于
答案 0 :(得分:5)
你是在想它:
class GenerateInvoiceWorker
include Sidekiq::Worker
include MyHelper
def perform(product_id)
end
end
答案 1 :(得分:3)
将is_admin?
提取到ApplicationHelper
或任何其他模块中。记住帮助者只不过是ruby模块。然后在ApplicationHelper
和ApplicationController
中包含该模块(无论是GenerateInvoiceWorker
还是任何其他自定义帮助程序。
class ApplicationController < ActionController::Base
include ApplicationHelper
end
class GenerateInvoiceWorker
include Sidekiq::Worker
include ApplicationHelper
def perform(product_id)
end
end