【发布时间】:2015-11-25 17:31:38
【问题描述】:
我有一个带有这个(简化)架构的地址的 ecto 模型:
defmodule Address do
use Ecto.Model
schema "addresses" do
field :zip, :string
field :country, :string
# snip
end
@countries_requiring_zip ~w(US) # snip
def changeset(model, params \\ :empty) do
model
|> cast(params, ~w(country), ~w(zip))
|> validate_zip
end
defp validate_zip(changeset) do
if get_field(changeset, :country) in @countries_requiring_zip do
# ????
end
changeset
end
end
我想将zip 标记为必需而不是可选,但前提是该国家/地区在白名单中,但我想不出一种干净的方式来编写验证。如何添加该约束?
【问题讨论】:
标签: elixir phoenix-framework ecto