rails 如何在 ERB.new 服务中使用助手?

rails how to use helpers with ERB.new in service?

我有一个使用 ERB 文件呈现模板表单的服务。

在表单中我使用了几个助手,但在这种情况下它们似乎不可用。

如何通过 ERB.new(template).result(binding) 在渲染中使用我的助手?

这是我遇到的错误:

*** NoMethodError Exception: undefined method `image_encoded' for #<MyService>

这是服务 app/services/my_service.rb 文件中的调用:

ERB.new(template).result(binding)

这是我的助手app/helpers/my_helper.rb

module MyHelper
  def image_encoded(image_url)
    <<image stuff>>
  end
end

这是我对 app/views/my_template/my_template.html.erb 文件中的助手的调用:

<img src="<%= image_encoded(image) %>"/>

在您的服务中,您的助手默认不包括在内。您可以像这样包含来自特定助手的方法:

class MyService
  include MyHelper
end