Я хочу отправить сообщение для связи один ко многим с JSON в Phoenix Elixir.В Интернете есть много примеров, но я не видел ни одного примера, связанного один-ко-многим.Как передать параметры для контакта в контроллере?
Схема для Costumer
равна
schema "customers" do
field :email, :string
field :name, :string
has_many :contacts, App.Customers.Contact
timestamps()
end
@doc false
def changeset(customer, attrs \\ %{}) do
customer
|> cast(attrs, [:name, :email])
|> validate_required([:name, :email])
|> unique_constraint(:email)
end
Схема для Contact
равна
schema "contacts" do
field :phone, :string
belongs_to :customers, App.Customers.Customer, foreign_key: :customer_id
timestamps()
end
@doc false
def changeset(contact, attrs \\ %{}) do
contact
|> cast(attrs, [:phone])
|> validate_required([:phone])
end
Это контроллер:
def create(conn, %{"email" => email, "name" => name, "phone" => phone} = customer_params) do
with {:ok, %Customer{} = customer} <- Customers.create_customer(customer_params) do
conn
|> put_status(:created)
|> put_resp_header("location", Routes.customer_path(conn, :show, customer))
|> render("show.json", customer: customer)
end
end