ecto_fields v1.3.0 EctoFields.Static
Enforce a static value for a database column, useful when multiple schemas store data in one table
Examples
iex> defmodule Test do
...> import EctoFields.Static
...> static_field(UserType, "admin")
...> end
...> Test.UserType.cast(nil)
{:ok, "admin"}
iex> Test.UserType.cast("superadmin")
:error
iex> Test.UserType.cast("admin")
{:ok, "admin"}
Typical usage in Ecto schemas looks like this:
iex> defmodule Truck do
...> use Ecto.Schema
...> import EctoFields.Static
...>
...> static_field(Type, "truck")
...> static_field(Second, "anything")
...>
...> schema "vehicles" do
...> field :type, Type
...> field :second, Second
...> field :license_plate, :string
...> field :make, :string
...> end
...> end
...> Truck.Type.cast(nil)
{:ok, "truck"}
iex> Truck.Second.cast(nil)
{:ok, "anything"}