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 に答える