2016-04-26 20 views
5

Kann mir jemand helfen, was muss ein dummer Fehler sein, fürchte ich. Betrachten wir diese beiden Schnipsel:Phoenix Seeding Dates

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

    def change do 
    create table(:cards) do 
     add :creation_date, :date 

und

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

    schema "cards" do 
    field :creation_date, Ecto.Date 

Ich versuche, einige Daten auf Saatgut

cards = [ 
    %Card{ 
     creation_date: "2014-04-17", 

mit bekam ich diese einfachen Strings von Dingen, die ich im Internet gefunden; die Alternative schien {"2015", "04", "17"} zu sein.

** (Ecto.ChangeError) Wert "2014-04-17" für MosaicApi.Card.creation_date in insert Typ passt nicht Ecto.Date

+0

Was ist mit 'Zeitstempel', können Sie' creation_date' von dort – Nomad

Antwort

6

dieses Versuchen:

cards = [ 
    %Card{ 
    creation_date: %Ecto.Date{year: 2014, month: 4, day: 17}, 

Oder:

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

Die Generatoren für die Tests wurden kürzlich geändert m das String-Format (das könnte sein, wo Sie die Idee hatten) https://github.com/phoenixframework/phoenix/commit/badf8065d0b025d6b6ad212bfa0b96e897f06a6a

+0

Das schien zu funktionieren, aber ich muss diese Struktur jedes Mal ein Datum machen kommt in. Die Client-Seite ist Elm, die standardmäßig Daten wie '1461660831027' –

+0

Ich habe eine Möglichkeit zur Verwendung der ursprünglichen Zeichenfolge, die Sie bereitgestellt haben, aktualisiert. – Gazler

+0

Check out http://michal.muskala.eu/2015/07/30/unix-timestamps-in-elixir.html für Zeitstempel – Gazler