Ecto.Changeset helpers for Localize.Inputs.
Only compiled when :ecto is loaded.
schema "products" do
field :quantity, :integer
field :rating, :decimal
end
def changeset(product, attrs) do
product
|> Ecto.Changeset.cast(attrs, [:quantity, :rating])
|> Localize.Inputs.Number.Changeset.validate_number(:quantity, min: 1)
|> Localize.Inputs.Number.Changeset.validate_number(:rating, min: 0, max: 5, decimals: 1)
end
Summary
Functions
Validates a Decimal / integer field with the rules from
Localize.Inputs.Number.Validator.validate_number/2.
Functions
@spec validate_number(Ecto.Changeset.t(), atom(), Keyword.t()) :: Ecto.Changeset.t()
Validates a Decimal / integer field with the rules from
Localize.Inputs.Number.Validator.validate_number/2.
Arguments
changesetis anEcto.Changeset.t/0.fieldis the field name as an atom.optionsis a keyword list of options forwarded toLocalize.Inputs.Number.Validator.validate_number/2.
Options
:required— whentrue,nilis rejected.:min— minimum allowed value.:max— maximum allowed value.:decimals— maximum number of fractional digits.
Returns
- The changeset, with one error added per failing check.
Examples
iex> changeset = Ecto.Changeset.cast({%{}, %{quantity: :integer}}, %{"quantity" => 5}, [:quantity])
iex> changeset = Localize.Inputs.Number.Changeset.validate_number(changeset, :quantity, min: 1, max: 10)
iex> changeset.valid?
true