Sto facendo la mia prima applicazione Phoenix e sto provando a fare il nuovo controller/2. Il codice che ho scritto èController Phoenix orribilmente ridondante
def new(conn, %{"fbid" => fbid, "latitude" => lat, "longitude" => lng, "content" => content}) do
{fbid, _} = Integer.parse(fbid);
{lat, _} = Float.parse(lat);
{lng, _} = Float.parse(lng);
chats = %Chat{:fbid => fbid, :latitude => lat, :longitude => lng, :content => content}
|> Repo.insert
|> List.wrap
|> Poison.encode!
render conn, chats: chats
end
Ma sembra orribilmente ridondante e non riesco a trovare un modo migliore per fare questo. Ho letto che non c'è modo di convertire Map to Struct, e dal momento che i parametri differiscono nel tipo non funzionerebbe comunque.
Quindi qualcuno può mostrarmi un modo magico per mapparlo?
Quindi non esiste una soluzione di puro codice? Non mi piacciono i comandi di generazione del codice. È imbroglio;) –
Il generatore non è lì per generare l'intera applicazione, è lì come uno strumento di apprendimento per mostrarti come strutturare il tuo codice. Non è necessario utilizzarlo alla fine della giornata, ma dai un'occhiata a ciò che viene generato almeno una volta per apprendere i concetti richiesti per costruire CRUD in Phoenix. –
Dopo la generazione, 12 test su 14 falliscono perché Project.ErrorView.render/2 non è definito. Dovrei generarlo anche in qualche modo o scrivere a mano? –