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