2016-04-26 13 views
5

Czy ktoś może pomóc w tym, co musi być głupim błędem, którego się boję. Uważają, że te dwa fragmenty:Daty szczepienia Phoenix

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

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

i

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

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

Próbuję nasion niektórych danych przy użyciu

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

mam te proste ciągi z rzeczy znalezionych w internecie; alternatywą wydawało się być {"2015", "04", "17"}.

wartość "2014-04-17" dla MosaicApi.Card.creation_date w insert ** (Ecto.ChangeError) nie pasuje do typu Ecto.Date

+0

Co powiesz na 'znaczniki czasu', możesz wydobyć' st_dodel_data' stamtąd – Nomad

Odpowiedz

6

Spróbuj:

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

czyli

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

Generatory do testów zostały ostatnio zmienione m format smyczkowy (który może być tam, gdzie wpadłeś na pomysł) https://github.com/phoenixframework/phoenix/commit/badf8065d0b025d6b6ad212bfa0b96e897f06a6a

+0

To wydawało się działać, ale czy będę musiał zrobić tę strukturę za każdym razem, kiedy data przychodzi. Po stronie klienta jest Elm, który domyślnie tworzy daty takie jak '1461660831027' –

+0

Zaktualizowałem sposób użycia oryginalnego napisanego ciągu. – Gazler

+0

Sprawdź http://michal.muskala.eu/2015/07/30/unix-timestamps-in-elixir.html dla znaczników czasu – Gazler