我在Phoenix应用程序中的Users模型上有一个布尔属性。
如何从终端/命令提示符更新此属性?
例如 - 在Rails控制台(在我的终端中运行rails c
)我可以这样做:
u = User.find(1)
u.admin = true
u.save
凤凰城最好的办法是什么? (也许通过iex -S mix
? - 我认为这是rails c
最接近的事情。
答案 0 :(得分:5)
iex -S mix
打开控制台是对的。
您必须使用Ecto.Changeset结构进行更改。 Ecto.Changeset.change/2是进行任意更改的最简单方法:
alias MyApp.{Repo, User} # for convenience, not required
user = Repo.get(User, 1)
Ecto.Changeset.change(user, %{admin: true}) |> Repo.update!
请注意,如果您想在执行此类更新时运行用户验证,则可能需要使用模型中定义的函数(默认情况下为changeset/2
)。
答案 1 :(得分:2)
虽然@ Gazler的答案显然是正确的,但我认为有更简单的方法可以获得相同的结果。
您可以尝试以下方式:
?vFrom=Fri Mar 25 2016 01%3A00%3A00 GMT%2B0100 (CET)
您需要注意,通过这种方法,更改不会成为验证的主题,但是,如果您想要进行简单而安全的更改,则可能无需到达{{1} }。
希望有所帮助!