Функция Ecto `undefined:` при работе с макросом *** в iex ***
У меня проблема с проектом Ecto. Ни один из запросов не работает.
Я честно оценил поиск поисковых запросов и поисковых запросов. Немного, но не связано с моей проблемой.
Этот вопрос был начат с этого https://github.com/elixir-lang/ecto/issues/602#issuecomment-145596702 (в основном связанный с моей проблемой)
query = from u in Univer, where: u.id > 4, select: u
Выдувается с помощью ** (RuntimeError) undefined function: u/0
. Не только эта модель, но и другие модели.
Мои депы.
{:postgrex, "~> 0.9.1"},
{:poison, "~> 1.5"},
{:httpoison, "~> 0.7.2"},
{:ecto, "~> 1.0.4"},
{:floki, "~> 0.5"}
В настоящее время все чтение из db выполняется через psql
. Это делает работу, но раздражает.:)
Для справки.
defmodule Univer do
use Ecto.Model
import Ecto.Query
schema "univers" do
field :ref, :integer
field :name, :string
field :legal_name, :string
field :city, :string
field :type, :string
field :address, :string
field :contacts, {:array, :string}
field :fax, :string
field :phones, {:array, :string}
field :email, :string
field :url, :string
has_many :schools, School
has_one :place, Place
timestamps
end
end
и миграции
defmodule Univer.Repo.Migrations.AddUniversTable do
use Ecto.Migration
def up do
create table(:univers) do
add :ref, :integer
add :name, :text
add :legal_name, :text
add :type, :string
add :fax, :string
add :city, :string
add :contacts, {:array, :string}
add :address, :text
add :phones, {:array, :string}
add :email, :string
add :url, :string
timestamps
end
end
def down do
drop table(:univers)
end
end
Ответы
Ответ 1
Я обнаружил, что ядро проблемы - это мое ожидание волшебства классического языка в функциональном языке.
Подробнее:
Если вы хотите протестировать запросы в консоли IEX (iex -S mix
).
Вы должны включить
import Ecto.Query
Я включил его в модуль, но не в консоль IEX.
Это довольно глупо, но, пожалуй, стоит поделиться.