我正在做我的第一个 Phoenix 应用程序,并尝试做 new/2 控制器。我写的代码是
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
但它看起来非常多余,我找不到更好的方法来做到这一点。我读过没有办法将 Map 转换为 Struct,并且由于参数的类型不同,它无论如何都不起作用。
那么任何人都可以告诉我一些神奇的方法来映射它吗?