У меня есть ассоциация, созданная в моделях Ecto в Фениксе. У Организации есть много Членов Организации. В методе Edit контроллера OrganizationMember я пытаюсь создать элемент SELECT, который будет содержать все организации на выбор. В редактировать definitiion, у меня есть следующие две строки:Phoenix и Ecto и SELECTs
# 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 f, :organization_id, @organizations, prompt: "Choose your organization" %>
Если я буду первая строка комментариев, Я получаю эту ошибку на шаблоне выберите:
протокол перечислимых не реализован # Ecto.Query
Если я использую первую строку и закомментировать второй, я получаю эту ошибку в контроллере:
протокол перечислимых не реализован # Ecto.Query
Как получить выберите, чтобы правильно отобразить выпадающее меню и значения? КСТАТИ organization_id приходит от этого:
organization_member = Repo.get!(OrganizationMember, id) |> Repo.preload(:organization)
organization_id = organization_member.organization.id
Я исхожу из фона C#, и я думаю, что я сработал синтаксисом LINQ. Я не понимал, что _from_ просто возвращает запрос, а не фактический набор данных. – Rob