ash에서 read - update

room을 읽어서 :action에 해당하는 update form을 만든 후 params와 함께 submit하면 된다.

 Settlement.get_room_by_short_id!("@xZiOtcCj5S0dDe9KmgLq") 
 |> AshPhoenix.Form.for_update(:update_name) 
 |> Phoenix.Component.to_form() 
 |> AshPhoenix.Form.submit(params: %{"name" => "정산영수증11"})
 

live view 내에서의 submit 처리의 경우 예시

  def handle_event("change_room_name", %{"form" => %{"name" => name} = form_params}, socket) do
    socket.assigns.room_name_form[:name] |> IO.inspect()

    socket =
      case AshPhoenix.Form.submit(socket.assigns.room_name_form, params: form_params) do
        {:ok, room} ->
          new_form =
            room
            |> AshPhoenix.Form.for_update(:update_name)
            |> to_form()

          socket |> assign(room: room, room_name_form: new_form)

        {:error, form} ->
          socket |> assign(room_name_form: form)
      end

    {:noreply, socket}
  end