Rails 7中替换form.rich_text_area后文本域消失问题求助
解决Action Text rich_text_area文本域消失问题
以下是针对该问题的排查与修复步骤:
1. 确认JavaScript模块已正确导入
在app/javascript/application.js中添加Action Text的导入语句:
import "@hotwired/turbo-rails" import "@rails/actiontext" // 必须添加此行 import "controllers"
Action Text依赖自身JS模块初始化Trix编辑器,缺少该导入时,rich_text_area生成的DOM元素无法渲染为可见编辑器。
2. 导入Trix样式文件
在app/assets/stylesheets/application.bootstrap.scss中添加Trix样式引用:
@import "bootstrap"; @import "trix/dist/trix"; // 添加此行
未加载Trix默认样式时,编辑器会处于不可见状态,视觉上表现为文本域消失。
3. 移除Blog模型对应的原content字段
使用has_rich_text :content后,Rails会自动创建action_text_rich_texts表存储富文本内容,原blogs表的content:text字段会引发冲突:
- 生成移除字段的迁移文件:
rails generate migration RemoveContentFromBlogs content:text
- 执行迁移:
rails db:migrate
4. 重新编译前端资源
确保前端资源已正确编译,开发环境运行:
bin/dev
生产环境执行:
rails assets:precompile
esbuild需要将导入的模块打包到app/assets/builds目录,未编译会导致浏览器无法加载所需JS和CSS。
5. 检查浏览器控制台错误
打开浏览器开发者工具的Console面板,查看是否存在JS加载错误(如模块找不到、语法错误),这类错误会直接导致Action Text编辑器无法初始化。
内容的提问来源于stack exchange,提问作者Karl
相关产品推荐
相关产品推荐

