我有一个Sidekiq工作人员进行一些后台处理,然后最终将成功消息POST到第三方API。我发布的这条消息本质上是一条“谢谢”消息,可以包含HTML。
在邮件中,我想以正确格式化的方式链接回我的网站。这听起来像是对我的看法。我喜欢简单地使用视图模板,将其渲染为HTML,最后将其发布到API。
对于我的生活,我无法想象如何从我的Sidekiq工作者中呈现视图。
我考虑过设置一个虚拟控制器/视图组合并从工作者内部实例化它,但它似乎不对。
非常感谢任何输入。
答案 0 :(得分:8)
在您的worker中,您可以直接使用ActionView :: Base来呈现视图。例如,要呈现users/events
部分:
view = html = ActionView::Base.new(Rails.root.join('app/views'))
view.class.include ApplicationHelper
view.render(
partial: 'users/event',
object: user.events.last
)
答案 1 :(得分:2)
您可以使用ERB
在作业中渲染模板。
require 'erb'
@text = "my answer" # variables, accessible in template.
template = "This is <%= @text %>."
# you can also render file like ERB.new(File.read(<file name here>))
renderer = ERB.new(template)
puts output = renderer.result()
有关ERB
的更多信息