【发布时间】:2018-05-22 05:00:53
【问题描述】:
我正在尝试创建一个连接表,并且在尝试构建一个结构时遇到了这个错误。
错误
protocol Enumerable 未为 %Statcasters.UsersLeagues{meta 实现:#Ecto.Schema.Metadata<:built>,专员:nil,id:nil,inserted_at:nil,league :#Ecto.Association.NotLoaded,league_id:nil,updated_at:nil,用户:#Ecto.Association.NotLoaded,user_id:nil}。该协议适用于:DBConnection.PrepareStream、DBConnection.Stream、Date.Range、Ecto.Adapters.SQL.Stream、File.Stream、Function、GenEvent.Stream、HashDict、HashSet、IO.Stream、List、Map、MapSet、 Postgrex.Stream, Range, Stream, Timex.Interval
这条线失败了:
联赛控制器:
def new(conn, _params) do
changeset = League.changeset(%League{users_leagues: %UsersLeagues{}})
render(conn, "new.html", changeset: changeset)
end
我与联盟和用户建立了 has_many 关系。连接表是 users_leages 表,这就是我试图在新操作中创建的。但是当我尝试加载新页面时。它因这个错误而中断。
【问题讨论】:
-
尝试将
%UsersLeagues{}更改为[%UsersLeagues{}]。 -
成功了!但我不明白为什么?