Action Text FixtureSet
Fixture 是组织要测试数据的常用方法;简单来说,就是示例数据。
若要详细了解 Fixture,请阅读 ActiveRecord::FixtureSet
文档。
YAML
与其他基于 Active Record 的模型一样,ActionText::RichText
记录继承自 ActiveRecord::Base
实例,因此可以通过 Fixture 填充数据。
考虑一个 Article
类
class Article < ApplicationRecord
has_rich_text :content
end
要声明与之相关的 content
的 Fixture 数据,首先在 test/fixtures/articles.yml
中声明 Article
实例的 Fixture 数据
first:
title: An Article
然后在 test/fixtures/action_text/rich_texts.yml
中声明 ActionText::RichText
Fixture 数据,确保声明每个条目 的 record:
键作为多态关系
first:
record: first (Article)
name: content
body: <div>Hello, world.</div>
处理后,Active Record 将为每个 Fixture 条目插入数据库记录,并确保 Action Text 关系保持完整。
方法
- 一个
类公开方法
attachment(fixture_set_name, label, column_type: :integer) 链接
Fixture 支持 Action Text 附件作为其 body
HTML 的一部分。
示例
例如,考虑在 test/fixtures/articles.yml
中声明的第二个 Article
Fixture
second:
title: Another Article
可以通过在 test/fixtures/action_text/rich_texts.yml
中的 body:
值中嵌入对 ActionText::FixtureSet.attachment
的调用,将 articles(:first)
的提及附加到 second
的 content
上
second:
record: second (Article)
name: content
body: <div>Hello, <%= ActionText::FixtureSet.attachment("articles", :first) %></div>
来源: 显示 | 在 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