mmag

ハマったことメモなど

Ecto.Changeset.change/2 知らなかった

Ectoのmany_to_manyのドキュメントを読んでいたら、使用例の中でEcto.Changeset.change/2という関数が使われていました。

構造体からchangesetをつくってくれる関数なようです。知らなかった。struct入れてもchangeset入れてもいいみたい。キャストやバリデーション無しで変更を入れたいときに使うのじゃ、とのこと。

user = Repo.get(User, 1)

changeset = Ecto.Changeset.change(user)

changeset = Ecto.Changeset.change(user, %{name: "john"})

changeset = Ecto.Changeset.change(changeset, %{age: user.age + 1})