Multiple Action Text / Rich Text Fields in One Model?

Rails 8 and Action Text: I have a model that needs three rich text fields but I can’t figure out a way to do this without having to break apart my main model into four separate ones: the main model and a model for each of the three fields that need action text / rich text.

Am I missing something or is it impossible to use more than one action text field in a model?

Thanks

Hi Shannon,

Yes, you can have multiple Action Text/Rich Text fields in a single model in Ruby on Rails. This is because Action Text uses a polymorphic relationship, allowing you to associate rich text content with different models and fields.

How it works:

1. Polymorphic Relationship:

When you define a rich text field with has_rich_text, Action Text creates a relationship to the action_text_rich_texts table. This table uses record_type and record_id columns to track which model and record the rich text content belongs to.

2. Multiple Fields:

You can define multiple has_rich_text fields in your model, each with a different name, and each will be associated with a separate record in the action_text_rich_texts table.

3. Unique IDs:

When using multiple rich text areas in a form, you might need to override the id attribute of the rich_text_area helper to ensure each instance has a unique ID, as mentioned on Stack Overflow.

4. Database Storage:

The rich text content itself is stored in the action_text_rich_texts table, and the relationship is established through the polymorphic association.

Example:

class Article < ApplicationRecord
  has_rich_text :body
  has_rich_text :summary
end

In this example, you would have two rich text fields, body and summary, associated with the Article model.

1 Like

awesome! thank you so much!

1 Like

You’re welcome Shannon :slightly_smiling_face:

1 Like