Ich habe zwei Modelle, Song und Vote, wo Songs viele Stimmen hat. Ich möchte alle Lieder auswählen und die Anzahl der Stimmen für jeden zählen.Wie Ecto Select Abfragen in Strukturen in Phoenix drehen?
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
enthält eine Liste von Listen In diesem Fall:
Der Index Aktion im SongController, die Mischung gen Aufgabe erzeugt wird, dazu wurde geändert. Aber in der ursprünglichen, generierten Funktion, songs = Repo.all(Song)
ist es eine Liste von Song-Strukturen.
Dies bedeutet, dass die song_path Funktionen in der Vorlage Bruch mit der folgenden Fehlermeldung: maps cannot be converted to_param. A struct was expected, got: %{artist: "Stephen", id: 3, name: "Crossfire"}
Natürlich, was ich wirklich ist zu tun, wollen ein num_votes
Feld der select-Anweisung irgendwie hinzufügen und dann Irgendwie ein entsprechendes Feld zur Song-Struktur machen?
Ich sehe, dass Hex.pm löst ein ähnliches Problem (Anzahl der Downloads eines Pakets) durch völlig separate Listen. ([Controller] (https://github.com/hexpm/hex_web/blob/master/web/controllers/package_controller.ex#L24), [Anzeigen] (https://github.com/hexpm/hex_web/blob/ Meister/Web/Vorlagen/Paket/index.html.eex # L67)) – Torstein