在凤凰应用中,当用户提交特定表单时,lat和lng从地址计算。cond和模式匹配映射
lat和lng可以在changeset.data中,如果没有更改,并且在changeset.changes,如果提交更改。
我在变更集上的lat和lng上执行其他的东西,但我需要知道坐标在哪里。我正在试图做的是:
cond do
# Always use new coordinates if possible
%{lat: lat, lng: lng} = changeset.changes ->
do_something(lat, lng)
%{lat: lat, lng: lng} = changeset.data ->
do_something(lat, lng)
true ->
do_nothing_and_return_the_changeset_as_is
end
当然这是行不通的,因为它不是模式返回true
或false
不匹配。
** (MatchError) no match of right hand side value: %{lat: any_value}
我居然做了一个长不找好,如果其他人如果....语句来实现这一点。
是否有更好的灵丹妙药?
伟大的我不知道'get_field',这似乎也是一个很酷的选择! –
这是让我的功能更容易阅读!谢谢 –