Spec-Zone.ru › Ruby on Rails 7.2

класс ActionText::FixtureSet

Родитель:
Объект

Action Text FixtureSet

Фикстуры — это способ организации данных, которые вы хотите использовать для тестирования; короче говоря, примерные данные.

Чтобы узнать больше о фикстурах, прочтите документацию ActiveRecord::FixtureSet.

YAML

Как и другие модели, поддерживаемые Active Record, записи ActionText::RichText наследуются от экземпляров ActiveRecord::Base и поэтому могут быть заполнены фикстурами.

Рассмотрим класс Article.

class Article < ApplicationRecord
  has_rich_text :content
end

Чтобы объявить данные фикстуры для связанного content, сначала объявите данные фикстуры для экземпляров Article в test/fixtures/articles.yml:

first:
  title: An Article

Затем объявите данные фикстуры ActionText::RichText в test/fixtures/action_text/rich_texts.yml, убедившись, что ключ каждой записи record: указан как полиморфное отношение:

first:
  record: first (Article)
  name: content
  body: <div>Hello, world.</div>

При обработке Active Record вставит записи в базу данных для каждой записи фикстуры и обеспечит сохранность отношения Action Text.

Публичные методы класса

attachment(fixture_set_name, label, column_type: :integer) Показать исходный код
# 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

Фикстуры поддерживают вложения Action Text как часть их body HTML.

Примеры

Например, рассмотрим вторую фикстуру Article , объявленную в test/fixtures/articles.yml:

second:
  title: Another Article

Вы можете прикрепить упоминание articles(:first) к second в content путем вставки вызова ActionText::FixtureSet.attachment в значение body: в test/fixtures/action_text/rich_texts.yml:

second:
  record: second (Article)
  name: content
  body: <div>Hello, <%= ActionText::FixtureSet.attachment("articles", :first) %></div>

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API