elixir ecto

elixir - Modelo ecto `función indefinida:` cuando se trabaja desde macro*** en iex***



(1)

Encontré que el núcleo del problema es mi expectativa de la magia del lenguaje clásico en el lenguaje funcional.

En detalle:

Si desea probar las consultas en la consola IEX ( iex -S mix ). Debe incluir

import Ecto.Query

Lo incluí en el módulo pero no en la consola IEX. Es bastante estúpido pero vale la pena compartirlo, supongo.

Estoy teniendo este problema con el proyecto Ecto. Ninguna de las consultas está funcionando. Hice un poco de búsqueda de Google y Github. Hay pocos pero no relacionados con mi problema.

Esta pregunta se inició a partir de esta https://github.com/elixir-lang/ecto/issues/602#issuecomment-145596702 (en su mayoría relacionada con mi problema)

query = from u in Univer, where: u.id > 4, select: u

Explota con la ** (RuntimeError) undefined function: u/0 . No solo ese modelo sino también otros modelos. Mis deps.

{:postgrex, "~> 0.9.1"}, {:poison, "~> 1.5"}, {:httpoison, "~> 0.7.2"}, {:ecto, "~> 1.0.4"}, {:floki, "~> 0.5"}

Actualmente toda la lectura de db se realiza a través de psql . Hace el trabajo pero molesto. :)

Para la referencia.

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

y la migración

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