मैं दो मॉडल, गीत और वोट मिल गया है, जहां गीत कई वोटों है। मैं सभी गानों का चयन करना चाहता हूं और प्रत्येक के लिए वोटों की संख्या गिनना चाहता हूं।फीनिक्स में structs में Ecto चुनिंदा प्रश्नों को कैसे चालू करें?
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)
यह गाने के structs की एक सूची है।
इसका मतलब है कि निम्न त्रुटि संदेश के साथ टेम्पलेट को तोड़ने में song_path कार्य: maps cannot be converted to_param. A struct was expected, got: %{artist: "Stephen", id: 3, name: "Crossfire"}
, क्या मैं वास्तव में क्या करना चाहते हैं किसी भी तरह का चयन बयान करने के लिए एक num_votes
क्षेत्र को जोड़ने के लिए है, और फिर किसी भी तरह से गाने संरचना के लिए एक समान क्षेत्र बनाते हैं? नोट करने के लिए
मुझे लगता है कि Hex.pm पूरी तरह से अलग सूचियों के द्वारा एक समान समस्या (पैकेज के डाउनलोड की संख्या) हल करता है। ([नियंत्रक] (https://github.com/hexpm/hex_web/blob/master/web/controllers/package_controller.ex#L24), [देखें] (https://github.com/hexpm/hex_web/blob/ मास्टर/वेब/टेम्पलेट्स/पैकेज/index.html।eex # L67)) – Torstein