2017-02-10 2 views
3

Я изучаю Феникс, используя книгу «Программирование Феникса». Первый проект создает postgres db, и это наша миграция. Я не могу избавиться от предупреждения для временных меток в моей схеме.Phoenix/Elixir - временных меток не существует, расширяется до timestamps()

defmodule Rumbl.Repo.Migrations.CreateUser do 
    use Ecto.Migration 

    def change do 
    create table(:users) do 
     add :name, :string 
     add :username, :string, null: false 
     add :password_hash, :string 

     timestamps 
    end 

    create unique_index(:users, [:username]) 
    end 
end 

Тогда наша модель, соответствующая этой миграции:

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

    schema "users" do 
    field :name, :string 
    field :username, :string 
    field :password, :string, virtual: true 
    field :password_hash, :string 

    timestamps 
    end 
end 

Теперь я бегу миграции, а затем mix phoenix.server.

И я получаю это предупреждение:

warning: variable "timestamps" does not exist and is being expanded to "timestamps()", 
please use parentheses to remove the ambiguity or change the variable name 
web/models/user.ex:10 

Если изменить timestamps в схеме, чтобы timestamps() не жалуется, больше, но книга никогда не показывает, что схема этой модели выглядит как после запуска миграции. Это должно быть правильно, или есть что-то еще, что это исправляет? Как должно выглядеть выражение «временные метки» в схеме Ecto/Phoenix?

ответ

4

Elixir 1.4 добавил предупреждение о вызове импортированной или локально определенной функции с аргументами 0 без круглых скобок, так как это неоднозначно, что это означает, когда у вас есть локальная переменная с тем же именем, что и функция, и вы пишете имя переменной без круглых скобок.

[Kernel] Предупреждать, если переменная используется как вызов функции

Source

Книга, вероятно, не был обновлен для Эликсир 1.4 еще. Генераторы Phoenix были обновлены, чтобы добавить круглые скобки in June 2016.

+0

Большое вам спасибо! Хорошо знать, что происходит, потому что мои поисковые запросы не помогли. – smkarber

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