Я только начал работать с 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
В документации не так много помощи, как это сделать правильно?
default: Ecto.DateTime.local
будет расширен во время компиляции, чего вы не хотите. Как сказал @whatyouhide, используйте вместо этогоEcto.Schema.timestamps/1
. - person José Valim   schedule 14.02.2015