2016-08-19 26 views
2

新しいElixirアプリケーションで変更せずに古いRails MySQLデータベース/テーブルを使いたいです。明らかに私はcreated_atinserted_atの問題にぶつかります。 https://hexdocs.pm/ecto/Ecto.Schema.html#timestamps/1は私がそれを解決できると言います。しかし、私はそれを働かせることはできません。ここで`inserted_at`の代わりに` created_at`を使用してください

は、私が何をすべきかです:

mix phoenix.new address_book --database mysql 
cd address_book 
mix phoenix.gen.html User users first_name last_name 
mix phoenix.server 

ウェブ/モデル/ user.ex

defmodule AddressBook.User do 
    use AddressBook.Web, :model 

    schema "users" do 
    field :first_name, :string 
    field :last_name, :string 

    timestamps([{:created_at,:updated_at}]) 
    end 
[...] 

しかし、私は次のエラーを取得より:どのよう

Screenshot

を私はこれを修正できますか?

答えて

2

正しい引数を指定してtimestamps関数を呼び出していません。それはどちらかでなければなりませんので、それは、オプションをとります。

timestamps(inserted_at: :created_at) 

または:

timestamps([{inserted_at: :created_at}]) 

あなたが呼んでいる:

timestamps(created_at: :updated_at) 

created_atオプションにはチェックがないので、これはそうではありません使用されているタイムスタンプを変更します。

あなたは使用することにより、すべてのスキーマのためにこれを設定することができます(スキーマセクションで)あなたのweb.exファイルで

@timestamps_opts inserted_at: :created_at 

+4

@timestamps_optsを正確に定義する必要がありますか?スキーマを見つけることができません。 – raarts

関連する問題