У меня есть две модели, Song и Vote, в которых песни имеют много голосов. Я хочу выбрать все песни и подсчитать количество голосов за каждую.
Действие index в SongController, созданное с помощью задачи создания микширования, было изменено на следующее:
def index(conn, _params) do
query = from s in Song, select: %{id: s.id, name: s.name, artist: s.artist}
songs = Repo.all(query)
render(conn, "index.html", songs: songs)
end
В этом случае songs
содержит список списков. Но в исходной, сгенерированной функции songs = Repo.all(Song)
это список структур песни.
Это означает, что функция song_path в шаблоне прерывается следующим сообщением об ошибке: maps cannot be converted to_param. A struct was expected, got: %{artist: "Stephen", id: 3, name: "Crossfire"}
Конечно, я действительно хочу как-то добавить поле num_votes
в оператор select, а затем каким-то образом сделать соответствующее поле в структуре Song?