Spec-Zone.ru › Phoenix

mix phx.gen.context

Исходный код

Создаёт контекст с функциями для схемы Ecto.

$ mix phx.gen.context Accounts User users name:string age:integer

Первый аргумент — модуль контекста, за которым следуют модуль схемы и его имя во множественном числе (используется как имя таблицы схемы).

Контекст — это модуль Elixir, который служит границей API для заданного ресурса. Контекст часто содержит множество связанных ресурсов. Поэтому, если контекст уже существует, в него будут добавлены функции для заданного ресурса.

Примечание: ресурс также можно разделить между разными контекстами (например, Accounts.User и Payments.User).

Схема отвечает за преобразование полей базы данных в структуру Elixir.

В целом этот генератор добавит следующие файлы в lib/your_app:

  • модуль контекста в accounts.ex, служащий границей API
  • схему в accounts/user.ex с таблицей users

Также будут созданы файл миграции для репозитория и тестовые файлы для контекста.

Создание миграции можно пропустить с помощью --no-migration.

Области видимости

Если в вашем приложении настроена собственная область видимости по умолчанию scope, этот генератор автоматически обеспечит корректное применение областей видимости ко всем операциям контекста. Чтобы отключить применение областей видимости, передайте флаг --no-scope.

Создание без схемы

В некоторых случаях может потребоваться создать модуль контекста и тесты, оставив внутреннюю реализацию контекста и схемы на своё усмотрение. Для этого используйте флаги --no-schema.

--table

По умолчанию именем таблицы для миграции и схемы будет имя ресурса во множественном числе. Чтобы настроить это значение, можно указать параметр --table. Например:

$ mix phx.gen.context Accounts User users --table cms_users

--binary-id

В созданной миграции для первичного ключа схемы и ссылок на него можно использовать binary_id с параметром --binary-id.

Параметры по умолчанию

Этот генератор использует параметры по умолчанию, заданные в конфигурации :generators вашего приложения. Вот эти значения:

config :your_app, :generators,
  migration: true,
  binary_id: false,
  timestamp_type: :naive_datetime,
  sample_binary_id: "11111111-1111-1111-1111-111111111111"

Эти параметры можно переопределить для отдельного вызова, указав соответствующие флаги: например, --no-binary-id, чтобы использовать обычные идентификаторы вопреки настройкам по умолчанию, или --migration, чтобы принудительно создать миграцию.

Дополнительные сведения об атрибутах см. в документации phx.gen.schema.

Пропуск запросов

Если уже существует контекст с таким же именем, генератор задаст вопрос и предоставит дополнительные инструкции по правильному использованию контекстов Phoenix. Этот запрос можно пропустить и автоматически объединить новые функции доступа к схеме и тесты с существующим контекстом с помощью --merge-with-existing-context. Чтобы не вносить изменения в существующий контекст и завершить работу генератора, используйте --no-merge-with-existing-context.

Пакет Hex Предпросмотр Hex Скачать версию ePub

Создано с помощью ExDoc (v0.40.3) для языка программирования Elixir

© 2014 Chris McCord
Licensed under the MIT License.
https://phoenix.hexdocs.pm/Mix.Tasks.Phx.Gen.Context.html

Spec-Zone.ru

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