我要做的是将空字符串作为字段的值传递,并验证它是否为nil。问题是validate_required会在nil和空值上引发错误。如何让它接受空白值?
模式
schema "messages" do
field :user_id, :string
field :text, :string
timestamps()
end
变更
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:text, :user_id])
|> validate_required([:text, :user_id])
end
答案 0 :(得分:5)
遗憾的是,validate_required
def changeset(struct, params \\ %{}) do
struct
|> cast(params, [:text, :user_id])
|> validate_not_nil([:text, :user_id])
end
def validate_not_nil(changeset, fields) do
Enum.reduce(fields, changeset, fn field, changeset ->
if get_field(changeset, field) == nil do
add_error(changeset, field, "nil")
else
changeset
end
end)
end
的行为只考虑空白以及空白字符串。但是,您可以编写一个简单的函数来进行验证:
nil
该函数遍历每个字段,为每个具有值var radians = deg / 180 * Math.Pi;
var cos = Math.cos(radians), sin = Math.sin(radians);
var matrix = [cos, sin, -sin, cos];
的字段添加错误。