Skip to content

Instantly share code, notes, and snippets.

@AndrewDryga
Last active August 24, 2017 12:56
Show Gist options
  • Save AndrewDryga/d28ea6ea28aac85dfea9d8b3ff077589 to your computer and use it in GitHub Desktop.
Save AndrewDryga/d28ea6ea28aac85dfea9d8b3ff077589 to your computer and use it in GitHub Desktop.
on_load Module callback example
defmodule MyAppAPI.Changeset do
import Ecto.Changeset
@on_load :load_buckets
# ...
def load_buckets do
known_buckets = "KNOWN_BUCKETS" |> System.get_env() |> String.split(",", trim: true)
Application.put_env(:myapp_api, :known_buckets, known_buckets)
end
# ...
def changeset(schema, attrs) do
known_buckets = Application.get_env(:myapp_api, :known_buckets)
schema
|> cast(attrs, @fields)
|> validate_inclusion(:bucket, known_buckets)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment