2016-08-19 3 views
2

Я хочу использовать старую базу данных/таблицу Rails MySQL без изменения ее с помощью нового приложения Elixir. Очевидно, я столкнулся с проблемой created_at и inserted_at. https://hexdocs.pm/ecto/Ecto.Schema.html#timestamps/1 говорит, что я могу это решить. Но я не могу заставить его работать.Использовать `created_at` вместо` insert_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(inserted_at: :created_at) 

Или:

timestamps([{inserted_at: :created_at}]) 

Вы звоните:

timestamps(created_at: :updated_at) 

Поскольку нет никакой проверки для опции created_at, это не измените используемые временные метки.

Вы можете настроить это для всех ваших схем с помощью:

@timestamps_opts inserted_at: :created_at 

В файле web.ex (в разделе схемы).

+4

Где именно должно быть определено @timestamps_opts? Не удается найти секцию схемы. – raarts

Смежные вопросы