我在凤凰城的Ecto模特公司成立了一个协会。一个组织有许多OrganizationMembers。在OrganizationMember控制器的Edit方法中,我试图创建一个SELECT元素,该元素将容纳所有可供选择的组织。在编辑定义中,我有以下两行:
# organizations = Enum.to_list(from(o in Organization, order_by: o.name, select: [o.name, o.id]))
organizations = from(o in Organization, order_by: o.name, select: {o.name, o.id})这是模板中显示select的行:
<%= select f, :organization_id, @organizations, prompt: "Choose your organization" %>如果保留第一行注释,则在模板选择上出现以下错误:
不能为#Ecto.Query实现的协议枚举
如果使用第一行并对第二行进行注释,则控制器中会出现以下错误:
不能为#Ecto.Query实现的协议枚举
如何让select正确地显示select下拉列表和值?顺便说一下,organization_id来自于以下内容:
organization_member = Repo.get!(OrganizationMember, id) |> Repo.preload(:organization)
organization_id = organization_member.organization.id发布于 2015-09-15 07:11:58
正如错误消息所述,%Ecto.Query{}不是可枚举的。如果您想要获得查询结果,必须调用存储库并将查询提供给它:
Repo.all from(o in Organization, order_by: o.name, select: {o.name, o.id})PS:注意,我将select返回的值更改为元组,因为这是select需要的表单。
https://stackoverflow.com/questions/32576899
复制相似问题