【问题标题】:Phoenix undefined function cast error凤凰未定义函数转换错误
【发布时间】:2018-04-22 10:13:07
【问题描述】:

我正在阅读《Programmming Phoneix》这本书,但我遇到了一个错误

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

【问题讨论】:

    标签: terminal phoenix


    【解决方案1】:

    import Ecto.Changeset 在您的 Rumbl.User 模块中。 cast/4Ecto.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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多