Ecto 和 Elixir 的默认日期时间

2024-04-20

我今天刚刚开始使用 Elixir 和 Phoenix,我正在尝试添加 Ecto 作为映射器,但我在使用时间时遇到了一些问题。

这是我的模型。

  schema "users" do
    field :name, :string
    field :email, :string
    field :created_at, :datetime, default: Ecto.DateTime.local
    field :updated_at, :datetime, default: Ecto.DateTime.local
  end

我试图默认设置created_at和updated_at,但是当我尝试编译它时,出现以下错误。

== Compilation error on file web/models/user.ex ==
** (ArgumentError) invalid default argument `%Ecto.DateTime{day: 13, hour: 19, min: 47, month: 2, sec: 12, year: 2015}` for `:datetime`
lib/ecto/schema.ex:687: Ecto.Schema.check_default!/2
lib/ecto/schema.ex:522: Ecto.Schema.__field__/4
web/models/board.ex:9: (module)
(stdlib) erl_eval.erl:657: :erl_eval.do_apply/6

文档中没有太多帮助,正确的方法是什么?


默认字段名称是:inserted_at and :updated_at但您可以与自己的字段名称合并,传递关键字列表

schema "users" do
  field :name, :string
  field :email, :string
  timestamps([{:inserted_at,:created_at}])
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ecto 和 Elixir 的默认日期时间 的相关文章

随机推荐