Неопределенная ошибка при запуске функции Phoenix

cameron g спросил: 28 марта 2018 в 03:00 в: terminal

Я собираюсь с книгой программирования Phoenix, и я получаю сообщение об ошибке

rumbl master % → iex -S mix
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] 
[async-threads:10] [hipe] [kernel-poll:false] [dtrace]Compiling 9 files (.ex)== Compilation error in file web/models/user.ex ==
** (CompileError) web/models/user.ex:6: undefined function cast/4
(stdlib) lists.erl:1338: :lists.foreach/2
(stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:198: anonymous fn/4 in 
Kernel.ParallelCompiler.spawn_workers/6
rumbl master % →

Это файл user.ex, о котором говорится

defmodule Rumbl.User do
  defstruct [:id, :name, :username, :password]  def changeset(model, params \\ :empty) do
    model
    |> cast(params, ~w(name username), [])
    |> validate_length(:username, min: 1, max: 20)
  end
end

1 ответ

Badu ответил: 28 марта 2018 в 12:33

import Ecto.Changeset в вашем модуле Rumbl.User. cast/4 - это функция в модуле Ecto.Changeset

defmodule Rumbl.User do
   #import here
   import Ecto.Changeset
   defstruct [:id, :name, :username, :password]   def changeset(model, params \\ :empty) do
     model
     |> cast(params, ~w(name username), [])
     |> validate_length(:username, min: 1, max: 20)
   end
end