0
レコードが存在しない場合、この条件付きで作成することが期待されますが、.... nilが返されません。エリクシール、Ectoパターンがdbクエリと条件付きで一致しません。
case Repo.get_by(User, %{email: "[email protected]"}) do
struct ->
struct
nil ->
params = Map.merge(%{email: "[email protected]"}, %{password: "password"})
Repo.insert!(User.changeset(User.__struct__, params))
end
# returns nil.... huwutt???
ただし、条件の順序を変更すると動作します。私はここで何が欠けていますか?
case Repo.get_by(User, %{email: "[email protected]"}) do
nil ->
params = Map.merge(%{email: "[email protected]"}, %{password: "password"})
Repo.insert!(User.changeset(User.__struct__, params))
struct ->
struct
end
# returns a set of 24" pythons, brother.... huzah!
最初の例では、ガードを提供していないため、最初のケースが常に一致します。したがって、 'struct'は' nil'にバインドされます – AbM