Action Text RichText

The RichText record holds the content produced by the Trix editor in a serialized body attribute. It also holds all the references to the embedded files, which are stored using Active Storage. This record is then associated with the Active Record model the application desires to have rich text content using the has_rich_text class method.

class Message < ActiveRecord::Base
  has_rich_text :content
end

message = Message.create!(content: "<h1>Funny times!</h1>")
message.content #=> #<ActionText::RichText....
message.content.to_s # => "<h1>Funny times!</h1>"
message.content.to_plain_text # => "Funny times!"

Methods

Instance Public methods

to_plain_text()

Returns the body attribute as plain text with all HTML tags removed.

message = Message.create!(content: "<h1>Funny times!</h1>")
message.content.to_plain_text # => "Funny times!"
📝 Source code
# File actiontext/app/models/action_text/rich_text.rb, line 37
    def to_plain_text
      body&.to_plain_text.to_s
    end
🔎 See on GitHub

to_trix_html()

Returns the body attribute in a format that makes it editable in the Trix editor. Previews of attachments are rendered inline.

content = "<h1>Funny Times!</h1><figure data-trix-attachment='{\"sgid\":\"..."\}'></figure>"
message = Message.create!(content: content)
message.content.to_trix_html # =>
# <div class="trix-content">
#   <h1>Funny times!</h1>
#   <figure data-trix-attachment='{\"sgid\":\"..."\}'>
#      <img src="http://example.org/rails/active_storage/.../funny.jpg">
#   </figure>
# </div>
📝 Source code
# File actiontext/app/models/action_text/rich_text.rb, line 53
    def to_trix_html
      body&.to_trix_html
    end
🔎 See on GitHub