在Ruby中,我可以去:
User.find_by(email: "foobar@email.com").update(email: "hello@email.com")
我如何在Elixir中做类似的事情?
Ecto.Changeset.change(MyApp.User |> where(email: "foobar"), email: "barbaz") |> MyApp.Repo.update
答案 0 :(得分:0)
您可以在查询中使用set:
并使用Repo.update_all/1
:
from(
u in User,
where: u.email == "foobar@email.com",
update: [set: [email: "hello@email.com"]]
) |> Repo.update_all([])
答案 1 :(得分:0)
您可以执行以下操作:
from(u in MyApp.User, where: u.email == "sergio@email.com") |> MyApp.Repo.update_all(set: [email: "sergiox@email.com"])