Контроллеры Phoenix - единственные или множественные?
Я знаю, что Rails имеет довольно солидное соглашение о наличии множественных имен контроллеров ex: CustomersController. Кажется, что Эликсиру все равно, потому что маршрутизация выполняется по-другому. Есть ли идиоматический способ назвать контроллеры в Фениксе?
Чтобы избежать некоторой путаницы, которая существует в Rails, вызванной тем, где использовать сингулярное vs множественное число, Phoenix решила идти с единственной формой последовательно. Это изменение было сделано в Phoenix v0.4.0. Вот объяснение, почему:
Phoenix также не налагает исключительные и множественные правила именования. Правила именования Rails могут путать начинающих и продвинутых разработчиков: модели используют уникальные имена, контроллеры используют множественные, URL-адреса помощников смешивают оба и так далее. Phoenix последовательно использует особые правила, как и любой другой код Elixir. Вы можете использовать множественные имена для ваших таблиц и путей маршрутизатора, но они явно написаны на ваших границах системы.
Я выделил самую важную часть для вашего удобства. Если вы хотите увидеть некоторые обсуждения вокруг того, где были приняты эти решения, ознакомьтесь с этим issue в репозитории Phoenix.
Контроллеры, модели и представления - единственные в Фениксе. Таким образом, для примера клиента соглашение будет:
CustomerController
CustomerView
Клиент
Схемы и таблицы, которые поддерживают модель, являются множественными.
Миграция будет использовать:
create table(:customers)
Схема должна использовать:
schema "customers"
Вы передаете одиночную и множественную версию в генератор:
mix phoenix.gen.html Customer customers
- Вопросы
- Phoenix-framework
- Контроллеры Phoenix - единственные или множественные?