【Elixir】Phoenix 5分でCRUDを作ってみます!
Elixir Phoenix で5分でCRUDをやってみます!
インストール関係は省きます。
今回 demo
という名前でプロジェクトを作っています。
環境
- Elixir 1.14.2
- Phoenix 1.6.3
mix phx.gen.html
mix phx.gen.html
コマンドを使用します。
mix phx.gen.html — Phoenix v1.6.13
このコマンドはController, Model, View, HTML リソースなどCRUDに必要なものを自動的に生成してくれます。
公式ドキュメントにあるコマンドを実行してみます。
mix phx.gen.html Accounts User users name:string age:integer
作成されるファイル
Controller
lib/demo_web/controllers/user_controller.ex
Model系
lib/demo/accounts.ex
lib/demo/accounts/user.ex
View系
lib/demo_web/views/user_view.ex
lib/demo_web/templates/user/edit.html.heex
lib/demo_web/templates/user/form.html.heex
lib/demo_web/templates/user/index.html.heex
lib/demo_web/templates/user/new.html.heex
lib/demo_web/templates/user/show.html.heex
マイグレーション
priv/repo/migrations/20230128234218_create_users.exs
テスト系
test/demo/accounts_test.exs
test/demo_web/controllers/user_controller_test.exs
test/support/fixtures/accounts_fixtures.ex
ルーティング追加
作成されたControllerをルーティングに追加します。
|
|
追加したルーティングを確認
mix phx.routes
UserController
へのルーティングが追加されたことを確認。
user_path GET /users/:id/edit DemoWeb.UserController :edit
user_path GET /users/new DemoWeb.UserController :new
user_path GET /users/:id DemoWeb.UserController :show
user_path POST /users DemoWeb.UserController :create
user_path PATCH /users/:id DemoWeb.UserController :update
PUT /users/:id DemoWeb.UserController :update
user_path DELETE /users/:id DemoWeb.UserController :delete
マイグレーションを実行
作成されたマイグレーションを実行します。
mix ecto.migrate
サーバー起動 & 動作確認
サーバー起動
mix phx.server
http://localhost:4000/users へ接続
これで簡単にCRUDが作成可能です。