使用 erb 模板和 sidekiq

问题描述 投票:0回答:2

我同时使用 sinatra 和 sidekiq。我正在尝试从 sidekiq 工作程序中渲染 erb 模板,但我得到了一个未定义的方法“erb”。在我看来,事情应该有效,因为 sidekiq 是作为我的 sinatra 应用程序的实例加载的,所以它应该有 erb 方法。我在这里缺少什么?

class SomeWorker
  include Sidekiq::Worker

  def perform(id)
    erb(:emailTemplate)
  end
end

(我现在意识到 SomeWorker 类与 sinatra 无关,所以它当然没有 erb 方法。也许我可以调用辅助模块?代替 erb 方法调用?)

sinatra erb sidekiq
2个回答
0
投票

所以我想出了1个解决方案:

require 'erb'
require 'tilt'

class ForgotEmailWorker
  include Sidekiq::Worker

  def perform
    template = tilt.new(__path_to_erb_file).render
  end
end

0
投票

因此,您可以尝试以下解决方法:

class MyWorker
  include Sidekiq::Worker

  def perform
    template_path = 'path/to/template.erb'
    template_content = File.read(template_path

    erb_template = ERB.new(template_content)
    result = erb_template.result(binding)
    puts result
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.