How do you get the data out of a form in rc3?

I have a few more complex form fields that I have to set with callbacks rather than in heex forms. Prior to rc3, I used the changeset:

  def handle_event("remove_schedule", _, socket) do
    changeset =
      socket.assigns.changeset
      |> Ecto.Changeset.put_change(:schedule, nil)

    {:noreply, assign(socket, :changeset, changeset)}
  end

But as of rc3, we deal entirely with form instead of changeset.

  def handle_event("remove_schedule", _, socket) do
    changeset =
      ????
      |> Ecto.Changeset.put_change(:schedule, nil)

    {:noreply, assign_form(socket, changeset)}
  end


  defp assign_form(socket, %Ecto.Changeset{} = changeset) do
    assign(socket, :form, to_form(changeset))
  end

How do I get a changeset like before, so I can add changes to it manually?

Thanks!

form.source should still give you the changeset.

You don’t have issues with errors sticking around when updating the changeset on each change?

2 Likes