如何在没有 Active Storage 的情况下安装 Action Text?

How install Action Text without Active Storage?

我想在我的应用程序中添加操作文本。但它也设置了Active Storage。我已经在使用 CarrierWave,不需要 Active Storage。 顺便说一句,我根本不需要在编辑器中上传文件。

ActionStorage 是 ActionText 的硬依赖。

# rails/actiontext/actiontext.gemspec
# frozen_string_literal: true

version = File.read(File.expand_path("../RAILS_VERSION", __dir__)).strip

Gem::Specification.new do |s|
  s.platform    = Gem::Platform::RUBY
  s.name        = "actiontext"
  s.version     = version
  s.summary     = "Rich text framework."
  s.description = "Edit and display rich text in Rails applications."

  # ...
  s.add_dependency "activesupport", version
  s.add_dependency "activerecord",  version
  s.add_dependency "activestorage", version
  s.add_dependency "actionpack",    version

  s.add_dependency "nokogiri", ">= 1.8.5"
end

因此您可以接受它(ActionStorage 和 CarrierWave 可以共存)或使用任何其他所见即所得的替代方案或自己集成 Trix 和 Rails。

如果您根本不需要上传文件,那么避免添加 ActiveStorage 应该相当容易。

转到 https://github.com/basecamp/trix 并按照他们的说明如何在 Rails 应用程序中设置 Trix 编辑器。只是不要将 trix 添加到您的 Gemfile,而是依赖于您从 Rails.

中获得的内容

如果您想添加文件上传,您需要尝试覆盖 trix-attachment-add 事件并将文件 href 设置为永久 URL,这样 Trix 总能找到它。