2012-08-24 3 views
2

웹 응용 프로그램에서 나는 tinymce 편집기를 사용하여 사용자가 html 전자 메일을 만들 수 있도록하고 있습니다. 데이터베이스에 템플릿을 저장할 수있는 기능을 포함시켜 여러 전자 메일에 사용할 수 있고 원하는 곳에 액세스 할 수 있습니다. 그러나 데이터베이스에 저장된 내용을 편집기로 다시로드하려고 할 때 html 문자열을 삽입하기 만하면됩니다. html이 렌더링되어 있으므로 템플릿을 저장할 때 볼 수 있습니다.erym과 setContent가 작동하지 않습니다

정상적인 문자열을 전달할 때 제대로 작동하지만 ERB를 사용하여 인스턴스 변수를 사용하면 올바르게 포맷되지 않은 HTML 문자열에 내용이 설정되므로 문제는 ERB와 관련이 있다고 생각합니다.

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); 
} 

작품을 완벽하게 정상적으로하고 편집기에서 다음텍스트를 넣습니다. 이 문제의 원인은 무엇입니까?

답변

3

@template에 HTML 문자열이 포함되어 있으면 레일스가 자동으로 이스케이프 처리합니다. 탈출을 막으려면 다음과 같이 을 추가하십시오.

<%= raw @template %> 
+0

고마워요! 그것에 관해 전혀 새로운 –

관련 문제