2016-01-02 6 views

ответ

15

Это объясняется в Programming Phoenix:

Крис говорит: Если нет никаких параметров, указанных, мы не можем просто по умолчанию пустой карты, потому что было бы неотличимо от пустой формы представления. Вместо этого, мы по умолчанию params для атома: empty. По соглашению Ecto создаст недопустимый набор изменений с пустыми параметрами.


Как Stefan отмечает в комментариях ниже:

Обрати внимание, что с Ecto 2.0 он использует пустую карту: def changeset(user, params \\ %{}) do

+6

Обрати внимание, что с Ecto 2.0 он использует пустую карту: ' def changeset (пользователь, params \\% {}) do'. См. Https://hexdocs.pm/ecto/2.0.2/Ecto.Changeset.html – Stefan

+0

Сделал это заметным в ответе на случай, если люди его пропустит. Спасибо :) –

+1

Любая идея, почему Ecto 2.0 теперь может по умолчанию использовать пустую карту? – Johannes