После 1.2 Phoenix прекратил использовать Rails-подобный синтаксис и дизайн models
;вместо этого Phoenix теперь разделяет модели данных на schemas
, а функции ORM на contexts
при создании этих ресурсов.
Структура каталогов Phoenix также изменилась при версии> = 1.3;теперь все ваши основные прикладные модули в ./lib/
, с не-сетевыми модулями и модулями, связанными с базой данных (схемы, контексты) в ./lib/appname/
и с веб-интерфейсами (контроллеры, представления и т. д.) в ./lib/appname_web/
.
Если вы запустите в своем проекте mix phx.gen.context Accounts User users email:string username:string
, генератор сгенерирует каталог ./lib/appname/accounts/
, содержащий файл с именем /accounts/user.ex
, содержащий вашего пользователя schema
& changeset
, и файл с именем /accounts/accounts.ex
, содержащийCRUD-логика вашей базы данных, связанная с вашей пользовательской схемой.
Ознакомьтесь с журналом изменений в ответе TGO, а также ознакомьтесь с официальными документами Phoenix о контекстах , чтобы получить более четкое представление о текущем дизайне контекста Phoenix