凤凰播种日期

Sim*_*n H 5 elixir phoenix-framework

任何人都可以帮助我担心的一个愚蠢的错误.考虑这两个片段:

defmodule MosaicApi.Repo.Migrations.CreateCard do
  use Ecto.Migration

  def change do
    create table(:cards) do
      add :creation_date, :date
Run Code Online (Sandbox Code Playgroud)

defmodule MosaicApi.Card do
  use MosaicApi.Web, :model

  schema "cards" do
    field :creation_date, Ecto.Date
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用一些数据

cards = [
    %Card{
        creation_date: "2014-04-17",
Run Code Online (Sandbox Code Playgroud)

我从互联网上找到的东西中得到了这些简单的字符串; 替代似乎是{"2015","04","17"}.

**(Ecto.ChangeError)值"2014-04-17"用于MosaicApi.Card.creation_dateinsert不匹配类型Ecto.Date

Gaz*_*ler 6

试试这个:

cards = [
  %Card{
    creation_date: %Ecto.Date{year: 2014, month: 4, day: 17},
Run Code Online (Sandbox Code Playgroud)

要么:

cards = [
  %Card{
    creation_date: Ecto.Date.cast!("2014-04-17"),
Run Code Online (Sandbox Code Playgroud)

(这可能是从哪里得到的想法)用于测试的发电机组最近从字符串格式改变https://github.com/phoenixframework/phoenix/commit/badf8065d0b025d6b6ad212bfa0b96e897f06a6a