0

我想扩展 ERB,以便在呈现结果之前对每个输出标签 - <%= %> - 内容进行预处理。

例如,

<%= 'test' %>

现在应该渲染

!test! 

代替

test

我怎样才能做到这一点 ?

4

2 回答 2

0

没有直接的方法可以做到这一点。也许你可以定义:

class String; def bang; "!#{self}!" end end

<%= "test".bang %>
于 2013-07-31T07:06:30.993 回答
0

像这样的东西?(未经测试)

require 'erb'
template = File.read(template_file)
template.gsub!(/<%=(.*?)%>/, '!\1!')
erb = ERB.new(template)
result = erb.result
于 2013-07-31T07:11:22.270 回答