Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir MyApp.MyStruct未实现协议枚举_Elixir_Phoenix Framework - Fatal编程技术网

Elixir MyApp.MyStruct未实现协议枚举

Elixir MyApp.MyStruct未实现协议枚举,elixir,phoenix-framework,Elixir,Phoenix Framework,我试图创建一个联接表,但在构建结构时遇到了这个错误 错误 未为%Statcasters实现协议可枚举。UsersLegues{meta:#exto.Schema.Metadata,专员:nil,id:nil,插入地址:nil,联盟:#exto.Association.NotLoaded,联盟id:nil,更新地址:nil,用户:#exto.Association.NotLoaded,用户id:nil}。此协议的实现对象为:DBConnection.PrepareStream、DBConnecti

我试图创建一个联接表,但在构建结构时遇到了这个错误

错误 未为%Statcasters实现协议可枚举。UsersLegues{meta:#exto.Schema.Metadata,专员:nil,id:nil,插入地址:nil,联盟:#exto.Association.NotLoaded,联盟id:nil,更新地址:nil,用户:#exto.Association.NotLoaded,用户id:nil}。此协议的实现对象为:DBConnection.PrepareStream、DBConnection.Stream、Date.Range、exto.Adapters.SQL.Stream、File.Stream、Function、GenEvent.Stream、HashDict、HashSet、IO.Stream、List、Map、MapSet、Postgrex.Stream、Range、Stream、Timex.Interval

它在这一行失败了:

联盟管理员:
我与联盟和用户之间有着密切的关系。联接表是users\u leages表,这就是我在新操作中尝试创建的内容。但是当我尝试加载新页面时。它因这个错误而中断

该错误意味着Ecto试图将字段
用户联盟
的值用作
%userslegues{}
不可用的可枚举项。由于该字段是一个
has_mun many
字段,一条记录可以有许多字段,并且它需要是
%UsersLeagues{}
结构的列表(或者更具体地说是一个可枚举的列表)

您可以通过在列表中包装
%UsersLeagues{}
来解决此问题:

changeset = League.changeset(%League{users_leagues: [%UsersLeagues{}]})

该错误意味着,Ecto试图将字段
users\u leagues
的值用作
%userslegues{}
不可用的可枚举项。由于该字段是一个
has_mun many
字段,一条记录可以有许多字段,并且它需要是
%UsersLeagues{}
结构的列表(或者更具体地说是一个可枚举的列表)

您可以通过在列表中包装
%UsersLeagues{}
来解决此问题:

changeset = League.changeset(%League{users_leagues: [%UsersLeagues{}]})

尝试将
%UsersLeagues{}
更改为
[%UsersLeagues{}]
。效果很好!但我不明白为什么?试着把
%UsersLeagues{}
改成
[%UsersLeagues{}]
。这很有效!但我不明白为什么?