Class: ActionText::FixtureSet

Inherits:
Object
  • Object
show all
Defined in:
lib/action_text/fixture_set.rb

Overview

# 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.

Class Method Summary collapse

Class Method Details

.attachment(fixture_set_name, label, column_type: :integer) ⇒ Object

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>


61
62
63
64
65
66
# File '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