You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails WYSIWYG显示代码而非样式化内容问题求助

解决Froala编辑器内容在Rails Show页面显示代码而非样式化的问题

我之前也碰到过一模一样的坑,这大概率是Rails默认的HTML转义机制在作祟!让我一步步帮你搞定:

核心原因

Froala编辑器生成的是带HTML标签的富文本内容,但Rails为了防止XSS攻击,默认会把所有输出的HTML转义成纯文本——所以你看到的不是样式化的内容,而是一堆被转义后的标签代码。

具体解决步骤

1. 先确认存储的内容是正确的HTML

先去你的数据库里检查对应post记录的content字段,看看是不是包含完整的HTML标签(比如<p>测试内容</p>、<strong>加粗文本</strong>这类)。从你贴的_form代码来看,编辑器初始化脚本是没问题的,大概率存储是正常的,但确认一下能避免走弯路。

2. 在Show页面关闭不必要的HTML转义

打开你的show.html.erb,找到输出文章内容的代码段,把原来的转义输出改成以下两种方式之一:

方式一:使用raw方法

<%= raw @post.content %>

方式二:使用html_safe方法

<%= @post.content.html_safe %>

这两种写法都会告诉Rails:“这段内容是安全的,直接渲染成HTML”,这样Froala编辑的样式就能正常显示了。

3. 安全提醒(非常重要!)

如果你的网站允许普通用户提交内容,直接用上面的方法可能会有XSS攻击风险。这时候建议用Rails内置的sanitize方法,它会自动过滤掉<script>这类危险标签,同时保留富文本的样式:

<%= sanitize @post.content %>

内容的提问来源于stack exchange,提问作者mark30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:21:24