2016-04-26 91 views
5

任何人都可以幫助我必須是一個愚蠢的錯誤,我害怕。考慮這兩個片段:鳳凰播種日期

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

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

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

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

我試圖使用

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

我從我的東西在互聯網上發現了這些簡單的字符串種子一些數據;替代方案似乎是{「2015」,「04」,「17」}。

insertMosaicApi.Card.creation_date **(Ecto.ChangeError)值"2014-04-17"不匹配類型Ecto.Date

+0

什麼'timestamps',你可以從那裏提取'creation_date' – Nomad

回答

6

試試這個:

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

或者:

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

最近測試的發生器已經改變m的字符串格式(這可能是你的想法)https://github.com/phoenixframework/phoenix/commit/badf8065d0b025d6b6ad212bfa0b96e897f06a6a

+0

這似乎工作,但我必須使這個結構每次一個日期進來。客戶端是榆樹,默認情況下生成像'1461660831027' –

+0

日期我已經更新了一種方式來使用您提供的原始字符串。 – Gazler

+0

查看http://michal.muskala.eu/2015/07/30/unix-timestamps-in-elixir.html獲取時間戳 – Gazler