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

如何在不使用Webpacker的Rails项目中集成Trix与ActionText?

在不使用Webpacker的Rails应用中集成Trix与ActionText

1. 确认Gem依赖并完成安装

在Gemfile中添加以下依赖:

gem 'trix'
gem 'actiontext'

执行命令完成安装:

bundle install

2. 手动创建ActionText迁移文件

由于rails action_text:install默认依赖Webpacker会报错,直接手动生成迁移文件:
在db/migrate目录下创建带时间戳前缀的迁移文件,内容如下:

class CreateActionTextTables < ActiveRecord::Migration[6.0]
  def change
    create_table :action_text_rich_texts do |t|
      t.string     :name, null: false
      t.text       :body, size: :long
      t.references :record, null: false, polymorphic: true, index: false

      t.timestamps

      t.index [:record_type, :record_id, :name], name: "index_action_text_rich_texts_uniqueness", unique: true
    end
  end
end

执行数据库迁移:

rails db:migrate

3. 通过Asset Pipeline引入Trix与ActionText资源

JavaScript配置

修改app/assets/javascripts/application.js,将原有的import语句替换为Sprockets的require语法:

//= require trix
//= require actiontext

CSS配置

根据样式文件类型修改对应配置:

  • 若使用.css文件(app/assets/stylesheets/application.css):
*= require trix
  • 若使用.scss文件(app/assets/stylesheets/application.scss):
@import "trix";

4. 模型层配置

在需要使用富文本的模型中添加富文本字段关联:

class Post < ApplicationRecord
  has_rich_text :content
end

5. 视图层配置

表单中添加富文本编辑器

使用ActionText提供的rich_text_area辅助方法:

<%= form_with model: @post do |form| %>
  <%= form.label :content %>
  <%= form.rich_text_area :content %>
  <%= form.submit "保存" %>
<% end %>

显示富文本内容

在视图中直接调用模型的富文本属性即可自动渲染:

<%= @post.content %>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:41:18