Skip to Content Skip to Search

class ActionText::FixtureSet

Action Text FixtureSet

Fixtures are a way of organizing data that you want to test against; in short, sample data.

To learn more about fixtures, read the ActiveRecord::FixtureSet documentation.

YAML

Like other Active Record-backed models, ActionText::RichText records inherit from ActiveRecord::Base instances and can therefore be populated by fixtures.

Consider an Article class:

class Article < ApplicationRecord
  has_rich_text :content
end

To declare fixture data for the related content, first declare fixture data for Article instances in test/fixtures/articles.yml:

first:
  title: An Article

Then declare the ActionText::RichText fixture data in test/fixtures/action_text/rich_texts.yml, making sure to declare each entry’s record: key as a polymorphic relationship:

first:
  record: first (Article)
  name: content
  body: <div>Hello, world.</div>

When processed, Active Record will insert database records for each fixture entry and will ensure the Action Text relationship is intact.

Public class methods

Fixtures support Action Text attachments as part of their body HTML.

Examples

For example, consider a second Article fixture declared in test/fixtures/articles.yml:

second:
  title: Another Article

You can attach a mention of articles(:first) to second‘s content by embedding a call to ActionText::FixtureSet.attachment in the body: value in test/fixtures/action_text/rich_texts.yml:

second:
  record: second (Article)
  name: content
  body: <div>Hello, <%= ActionText::FixtureSet.attachment("articles", :first) %></div>
Source code GitHub
# File actiontext/lib/action_text/fixture_set.rb, line 61
def self.attachment(fixture_set_name, label, column_type: :integer)
  signed_global_id = ActiveRecord::FixtureSet.signed_global_id fixture_set_name, label,
    column_type: column_type, for: ActionText::Attachable::LOCATOR_NAME

  %(<action-text-attachment sgid="#{signed_global_id}"></action-text-attachment>)
end

Definition files