2016-08-19 5 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