Protocol.UndefinedError 在凤凰城

Protocol.UndefinedError in Phoenix

我正在尝试转换数据库新环境。

我执行了phx.gen.json然后创建了相关模型。 数据库中已有表。我想我不需要 ecto migration 数据库。

但是,当我访问 json url 路径时,出现以下错误。 看来建库和获取数据都成功了。因为我看到了QUERY OK

** (exit) an exception was raised:
    ** (Protocol.UndefinedError) protocol Enumerable not implemented for nil of type Atom. This protocol is implemented for the following type(s): Ecto.Adapters.SQL.Stream, DBConnection.Stream, DBConnection.PrepareStream, HashSet, Range, Map, Function, List, Stream, Date.Range, HashDict, GenEvent.Stream, MapSet, File.Stream, IO.Stream
        (elixir) lib/enum.ex:1: Enumerable.impl_for!/1
        (elixir) lib/enum.ex:141: Enumerable.reduce/3
        (elixir) lib/enum.ex:3023: Enum.map/2
        (falcons) lib/falcons_web/views/member_view.ex:6: FalconsWeb.MemberView.render/2
        (phoenix) lib/phoenix/view.ex:410: Phoenix.View.render_to_iodata/3
        (phoenix) lib/phoenix/controller.ex:729: Phoenix.Controller.__put_render__/5
        (phoenix) lib/phoenix/controller.ex:746: Phoenix.Controller.instrument_render_and_send/4
        (falcons) lib/falcons_web/controllers/member_controller.ex:1: FalconsWeb.MemberController.action/2
        (falcons) lib/falcons_web/controllers/member_controller.ex:1: FalconsWeb.MemberController.phoenix_controller_pipeline/2
        (phoenix) lib/phoenix/router.ex:288: Phoenix.Router.__call__/2
        (falcons) lib/falcons_web/endpoint.ex:1: FalconsWeb.Endpoint.plug_builder_call/2
        (falcons) lib/plug/debugger.ex:122: FalconsWeb.Endpoint."call (overridable 3)"/2
        (falcons) lib/falcons_web/endpoint.ex:1: FalconsWeb.Endpoint.call/2
        (phoenix) lib/phoenix/endpoint/cowboy2_handler.ex:42: Phoenix.Endpoint.Cowboy2Handler.init/4
        (cowboy) /Users/tajima/Works/Falcons/deps/cowboy/src/cowboy_handler.erl:41: :cowboy_handler.execute/2
        (cowboy) /Users/tajima/Works/Falcons/deps/cowboy/src/cowboy_stream_h.erl:320: :cowboy_stream_h.execute/3
        (cowboy) /Users/tajima/Works/Falcons/deps/cowboy/src/cowboy_stream_h.erl:302: :cowboy_stream_h.request_process/3
        (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3

有什么问题。

谢谢。

这是代码不匹配造成的。 我从其他方法复制而来。 几乎没有区别。 members: members 否则。

控制器

  def login(conn, %{"email" => email, "passwd" => passwd}) do
    member = Scoresheet.login(email, passwd)
    render(conn, "login.json", member: member)
  end

查看

  def login(email, passwd) do
    Repo.get_by(Member, email: email, password_digest: passwd)
  end

我应该注意的很仔细。 谢谢