【发布时间】:2019-07-19 20:12:53
【问题描述】:
我经常将 Sinatra 用于小型项目。这对我需要的东西来说非常好,但我错过了将字符串标记为 HTML 安全的能力,然后 ERB 知道何时相应地转义或不转义。
如果我能撕掉 Rails 为 Erubi (around here) 制作的补丁,然后我自己将这些补丁应用到 Erubi,我真的很高兴,这样倾斜就可以使用猴子补丁的 Erubi,每个人都过上幸福的生活后。然而,在挖掘了源代码之后,我不清楚我如何才能真正做到这一点。
我还试图找到一些方法来获取 ActionView 的接口,例如 render 方法,但我什至找不到它的定义位置。
我如何在 Rails 之外使用 ActionView,理想情况下是通过对 Erubi 使用 ActionView 的猴子补丁,或者如果这不起作用,我还能如何使用 ActionView 从模板字符串转到 Rails 之外的渲染字符串?
具体来说,我希望能够做到以下几点:
def some_wrapper_func(unescaped_html)
"<div>#{h unescaped_html}</div>".html_safe
end
# test1.erb
hello world <%= "<script>alert('hi');</script>" %> <%= some_wrapper_func("<span>foobar</span>") %>
#=> hello world <script>alert('hi');</script> <div><span>foobar</span></div>
【问题讨论】:
标签: ruby sinatra actionview tilt