【发布时间】:2019-12-26 12:33:21
【问题描述】:
我在这里要做的是创建一个也允许 erb 的降价模板。我提出了这个解决方案:
class MarkdownTemplateHandler
def call(template, source)
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
compiled_source = erb.call(template, source)
markdown.render(compiled_source).inspect.html_safe
end
private
def erb
@erb ||= ActionView::Template.registered_template_handler(:erb)
end
end
ActionView::Template.register_template_handler(:md, MarkdownTemplateHandler.new)
问题:如果source 包含类似<%= "Hello" %> 的内容,则compiled_source 中的结果是'.freeze; "hello" @outputbuffer.safeappend=',而不是简单的Hello。
我错过了什么吗?
PS:这个例子是使用 rails 6 创建的。
【问题讨论】:
标签: ruby-on-rails erb ruby-on-rails-6