2

在我的 Web 应用程序中,我使用 tinymce 编辑器来允许用户创建 html 电子邮件。我已经包含了一个功能,他们可以将模板保存到数据库中,以便他们可以将其用于多封电子邮件并在他们想要的任何地方访问它。但是,当我尝试将存储在数据库中的内容加载回编辑器时,它只会插入 html 字符串。我想要它,以便呈现 html,以便他们可以看到模板,就像他们保存模板时一样。

我认为问题与 ERB 有关,因为当我传入普通字符串时它工作正常,但是当我使用 ERB 使用实例变量时,它只是将内容设置为 html 字符串,格式不正确。这是我的代码:

tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
    ...
    oninit : "loadTemplate"
});

function loadTemplate() {
    tinyMCE.activeEditor.setContent("<%= @template %>");
}

这只会放在<strong>Text Here</strong>编辑器中,但是:

tinyMCE.init({
    mode : "textareas",
    theme : "advanced",
    ...
    oninit : "loadTemplate"
});

function loadTemplate() {
    template = "<strong>Text Here</strong>";
    tinyMCE.activeEditor.setContent(template);
}

工作得很好,并将Text Here放在编辑器中。这里发生了什么导致这个问题?

4

1 回答 1

3

如果@template包含 HTML 字符串,rails 会自动转义它。为防止转义,请尝试添加raw,如下所示:

<%= raw @template %>
于 2012-08-24T16:42:50.667 回答