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