关于 ActionText 的问题,我已经吐槽不止一两次了...
ActionText 内置的 HTML sanitize 带上了不少严苛的规则,比如不允许 style,就是你换了其他的所见即所得编辑器,编辑好的 HTML 输出还是会少了东西。 还是没有 API,感觉可以自己实现一个 Lite 版本的 ActionText 了,只用 ActionText 存储的部分。 @huacnlee https://twitter.com/huacnlee/status/1177133855288909824
我也是坚持用 ActiveText,也尝试在 Trix 和 ActionText 的基础上尝试解决以上问题,但实际情况发现做起来很繁琐,回头来看,当初用 ActionText 不就是为了那个将 RichText 独立存储到单独表的设计么,于是阅读源代码找到实现,单独剥离出来。
于是我把它整理成了 ActionText Lite。
action_text_rich_texts
表里面,所以引入它,只是会让 ActionText 没了 Trix 和 ActiveStorage 的集成;gem "actiontext-lite"
然后安装 ActionText 的 Migration 命令(如果已经有 ActionText 做过,可以不用执行)
$ rails action_text_lite:install
接下来原来使用 ActiveText (Model 里面哪些功能),你可以继续保持:
class Post < ApplicationRecord
has_rich_text :body
end
@post = Post.new(body: "Hello world")
@post.body.to_s