rails如何在服务中使用helpers with ERB.new?

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

我有一个服务,它使用一个 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 文件,我有一个服务使用ERB文件来渲染模板表单。

<img src="<%= image_encoded(image) %>"/>
ruby-on-rails helper
1个回答
1
投票

在你的服务中,默认情况下,你的助记符是不包含的。你可以像这样包含某个助手的方法。

class MyService
  include MyHelper
end
© www.soinside.com 2019 - 2024. All rights reserved.