/ / Phoenix / Elixir - znaczniki czasu nie istnieją, rozszerzając się na znaczniki czasu () - postgresql, eliksir, phoenix-framework, eecto

Phoenix / Elixir - znaczniki czasu nie istnieją, rozwijając się do znaczników czasu () - postgresql, eliksir, framework feniksowy, ekto

Uczę się Phoenix za pomocą książki „Programming Phoenix”. Pierwszy projekt tworzy bazę danych postgres i to jest nasza migracja. Nie mogę pozbyć się ostrzeżenia dla znaczników czasu w moim schemacie.

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

Wtedy naszym modelem odpowiadającym tej migracji jest:

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

Teraz przeprowadzam migrację, a następnie mix phoenix.server.

I dostaję to ostrzeżenie:

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

Jeśli się zmienię timestamps w schemacie do timestamps() to już nie narzeka, ale książka nigdypokazuje, jak wygląda schemat modelu po uruchomieniu migracji. Czy to ma być poprawne, czy jest coś innego, co to naprawia? Jak powinna wyglądać reprezentacja „znaczników czasu” w schemacie Ecto / Phoenix?

Odpowiedzi:

5 dla odpowiedzi № 1

Eliksir 1.4 dodano ostrzeżenie o wywołaniu zaimportowanej lub lokalnie zdefiniowanej funkcji z 0 argumentami bez nawiasów, ponieważ jest to niejednoznaczne, co to powinno znaczyć, gdy mamy zmienną lokalną o tej samej nazwie co funkcja i piszesz nazwę zmiennej bez nawiasów.

[Jądro] Ostrzegaj, jeśli zmienna jest używana jako wywołanie funkcji

Źródło

Książka prawdopodobnie nie została jeszcze zaktualizowana dla Elixir 1.4. Generatory Phoenix zostały zaktualizowane, aby dodać nawiasy w czerwcu 2016 r.