为什么我的字符串仅在我手动输入时才起作用?

Spe*_*ley 1 javascript ruby ruby-on-rails contenteditable ruby-on-rails-3

这是存储在db中的确切字符串:

@blog_post.content = "<p><img src=\"http://localhost:3000/assets/sa_clubbing_logo.png\" alt=\"Sa_clubbing_logo\"><div><b>An image</b></div><div><b><br></b></div><div><b>Another image</b></div><div><b><img src=\"http://localhost:3000/assets/sa_clubbing_logo.png\" alt=\"Sa_clubbing_logo\"><br></b></div></p>" 
Run Code Online (Sandbox Code Playgroud)

如你看到的.它由一些图像和一些粗体文本组成.

好的,所以我在数据库中保存了html.我试图将html附加到像这样的内容可编辑div(我的富文本编辑器).

  $(document).ready(function(){  

  $('#rte').append("<%= @blog_post.content %>");

  });
Run Code Online (Sandbox Code Playgroud)

它出现在我的内容可编辑div中,但作为实际文本.我希望它呈现为html,以便图像实际显示.似乎附加的html是这样的:

<p>&lt;p&gt;&lt;img src="http://localhost:3000/assets/sa_clubbing_logo.png" alt="Sa_clubbing_logo"&gt;&lt;div&gt;&lt;b&gt;An image&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Another image&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;img src="http://localhost:3000/assets/sa_clubbing_logo.png" alt="Sa_clubbing_logo"&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;/p&gt;</p>
Run Code Online (Sandbox Code Playgroud)

所以我尝试手动将字符串放入append方法中,我得到了我想要的内容:

  $(document).ready(function(){  

  $('#rte').append("<p><img src=\"http://localhost:3000/assets/sa_clubbing_logo.png\" alt=\"Sa_clubbing_logo\"><div><b>An image</b></div><div><b><br></b></div><div><b>Another image</b></div><div><b><img src=\"http://localhost:3000/assets/sa_clubbing_logo.png\" alt=\"Sa_clubbing_logo\"><br></b></div></p>");

  }); 
Run Code Online (Sandbox Code Playgroud)

这里附加的html是这样的:

<p><img src="http://localhost:3000/assets/sa_clubbing_logo.png" alt="Sa_clubbing_logo"></p><div><b>An image</b></div><div><b><br></b></div><div><b>Another image</b></div><div><b><img src="http://localhost:3000/assets/sa_clubbing_logo.png" alt="Sa_clubbing_logo"><br></b></div><p></p>
Run Code Online (Sandbox Code Playgroud)

这些图像就像我想象的那样出现在我的编辑器中.

当我手动插入字符串时,为什么这样做,但是当我使用时却没有<%= @blog_posts.content %>

我必须在这里遗漏某种格式问题.

apn*_*ing 11

更换:

<%= @blog_post.content %>
Run Code Online (Sandbox Code Playgroud)

附:

<%=raw @blog_post.content %>
Run Code Online (Sandbox Code Playgroud)

要么:

<%== @blog_post.content %>
Run Code Online (Sandbox Code Playgroud)

甚至:

<%= @blog_post.content.html_safe %>
Run Code Online (Sandbox Code Playgroud)

说明:

Rails默认保护你,所以你必须告诉你何时考虑html安全.