跳到內文 跳到搜尋

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 關係完整。

Method
A

類別 Public 方法

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.ymlbody: 值中內嵌呼叫 ActionText::FixtureSet.attachment,將對 articles(:first) 的提及附加到 secondcontent

second:
  record: second (Article)
  name: content
  body: <div>Hello, <%= ActionText::FixtureSet.attachment("articles", :first) %></div>
# 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