当前位置:  开发笔记 > 编程语言 > 正文

在Rails转换文件中使用HTML

如何解决《在Rails转换文件中使用HTML》经验,为你挑选了2个好方法。

我在我的Rails应用程序(config/locale/[en | de] .yml)中有一些翻译,我在我的视图中使用它<%=t "teasers.welcome" %>.例:

teasers:
    welcome: "Welcome to the Website ..."

在Rails 2.3.8中这很好用,使用Rails 3,HTML被转义并转换为<...如何防止这种形式的翻译并在我的翻译文件中使用HTML,如Rails 2.3.8?



1> Simone Carle..:

除了使用之外raw,还有其他无证(但官方)的方法.所有以#结尾的键都会_html自动呈现为非转义状态.

重命名密钥

teasers:
    welcome: "Welcome to the Website ..."

teasers:
    welcome_html: "Welcome to the Website ..."


实际上它已被记录,在这里http://guides.rubyonrails.org/i18n.html#using-safe-html-translations

2> marcgg..:

我想是因为这样做

<%= t("blah") %>

在rails 2.x中,现在相当于做

<%=h t("blah") %>

当你使用rails 3时.

从发行说明 s:

切换到默认的XSS转义为rails.

要解决这个问题,请再次从发行说明中解决:

您不再需要调用h(字符串)来转义HTML输出,默认情况下它在所有视图模板中都处于打开状态.如果你想要未转义的字符串,请调用raw(string).

所以只需更换

<%= t("blah") %>

通过

<%= raw t("blah") %>


常规方法是使用以`_html`结尾的键.
如果您使用`<%= raw t"welcome",name:user.name%>`添加动态数据,请务必小心.如果用户将`name`值设置为某个javascript,则表示您正在进行XSS攻击.
推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有