2017-06-13 18 views
1

私はRailsで書かれたAPIをPhoenix Frameworkを使ってElixirに書き直しています。Ectoを使ってRails ActiveRecord datetimeフィールドを読み書きする方法は?

メインのウェブサイトはRailsを使用しており、引き続きRailsを使用します。しかし、私はAPIにElixirを使用したい。

私のElixir APIプロジェクトからcreated_atフィールドを読み取ることができる必要があります。

defmodule Example.Recipe do 
    use Ecto.Schema 

    schema "recipes" do 
    field :name, :string 
    field :description, :string 
    field :slug, :string 
    field :created_at ???datetime? 
    end 
end 

は、どのように私は私のエリクサーのAPIから適切created_atupdated_atフィールドを読むことができますか?

エクトはEcto.DateTimeを使用していますが、それは互換性がありますか?

答えて

2

最初にEctoはレコードがデータベースに最初に挿入されたときに追跡するためにinserted_at列を使用します.Railsはcreated_atを使用します。 inserted_atとupdated_atのための代替列名を指定するエクトスキーマ定義で

、タイムスタンプ受け入れオプション:

あなたは、挿入時に列名を過剰に乗る必要があります。ウェブ/モデル/ your_model.exで

変更のタイムスタンプの定義:

が変更

schema "your_model" do 
    field :login, :string 

    timestamps() 
end 

schema "your_model" do 
    field :login, :string 

    timestamps inserted_at: :created_at 
end 

には、これを行うには、世界的に見て https://hexdocs.pm/ecto/Ecto.Schema.html#module-schema-attributes

def model do 
    quote do 
    use Ecto.Schema 
    @timestamps_opts inserted_at: :created_at 

    import Ecto 
    import Ecto.Changeset 
    import Ecto.Query 
    end 
end 

さらにreferences of migration

関連する問題