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.
Methods
Class Public methods
attachment(fixture_set_name, label, column_type: :integer)
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
# 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
🔎 See on GitHub