我有一個字符串模板,如下圖所示評估字符串模板
template = '<p class="foo">#{content}</p>'
我想基於稱爲content
變量的當前值來評估模板。
html = my_eval(template, "Hello World")
這是我目前對這個問題的辦法:
def my_eval template, content
"\"#{template.gsub('"', '\"')}\"" # gsub to escape the quotes
end
是否有解決這個問題的一個更好的辦法?
EDIT我用HTML片段在上面的示例代碼以證明我的方案。我的真實場景是在配置文件中設置了XPATH模板。模板中的綁定變量將被替換以獲取有效的XPATH字符串。
我曾考慮過使用ERB,但由於它可能是一個矯枉過正的決定。
我在模板中使用HTML片段來演示場景。我有一堆需要替換的XPATH字符串。我曾想過使用ERB,但我想要一些輕量級的東西。 – 2010-02-23 21:35:06
我必須說這是一個有趣的解決方案。我必須在rake任務中運行我的代碼。所以這個解決方案可能需要一些調整。 – 2010-02-23 21:52:57
如果你正在談論rake任務,你最好使用Erb.new而不是ActionController#render。解決方案更新以反映這一點 – EmFi 2010-02-23 22:02:59