defmodule Ami.Assignment do use Ecto.Schema use Arc.Ecto.Schema import Ecto.{ Changeset } alias Ami.{ # Repo, Enrollment } alias Ami.AssignmentUploader.Type schema "assignments" do field(:file_name, :string) field(:file, Type) belongs_to(:enrollment, Enrollment) end def changeset(struct, params \\ %{}) do struct |> cast(params, [:file_name, :enrollment_id]) |> cast_attachments(params, [:file]) |> case do %{valid?: false, changes: changes} = changeset when changes == %{} -> %{changeset | action: :ignore} changeset -> changeset end end end