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
我应该注意的很仔细。
谢谢
我正在尝试转换数据库新环境。
我执行了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
我应该注意的很仔细。 谢谢