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"}

Link to this section Summary

Link to this section Functions

Link to this macro

static_field(module, value)

(macro)