Ecto に関連付けられたモデルが存在することをどのように検証できますか?
schema "foo" do
has_many: bar, Bar
timestamps
end
@required_fields ~w(bar) # invalid
そうする方法はありますか?そして、これらのフィールドの最小/最大数を検証しますか?
Ecto に関連付けられたモデルが存在することをどのように検証できますか?
schema "foo" do
has_many: bar, Bar
timestamps
end
@required_fields ~w(bar) # invalid
そうする方法はありますか?そして、これらのフィールドの最小/最大数を検証しますか?
まだ何もありません。changeset
ただし、関数でこれらの検証を自分で実行できます。
def changeset(model, params) do
model
|> cast(...)
|> validate_bar_association()
end
def validate_bar_association(changeset) do
bar = changeset.model.bar
cond do
bar == nil ->
add_error changeset, :bar, "No bar"
length(bar) < 5 ->
changeset
true ->
add_error changeset, :bar, "waaaay too many"
end
end
入れ子になった関連付けを改善したいのですが、優先度リストの上位にある他の項目があります。:)