3
我有一个User
模型,has_many
与other_model
的关系。 我有一个功能Search
搜索互联网。我只想在has_many
关系不是空数组的情况下搜索互联网。你能模式匹配elixir中的一个非空数组吗?
所以我想知道如果我可以模式匹配一个非空数组?正如你在下面看到的,额外的Search
导致嵌套分支,因此我使用with
语句,并希望有一个干净的解决方案。
query = from a in Model, where: a.id == ^id, preload: [:some_associations]
with %{some_associations: some_associations} <- Repo.one(query),
{:ok, some_results} <- Search.call(keywords, 1) do
do_something_with(some_associations, some_results)
else
nil -> IO.puts "query found nothing"
{:error, reason} -> IO.puts "Search or query returned error with reason #{reason}"
end
你的意思是像'{:OK,some_results = [_ | _]} < - ...'? – Dogbert
我需要some_associatuons不为空。嗯,我会尝试,当我回家。没有意识到你可以做到这一点...... –
@Dogbert你需要发布一些作为答案:)人们会在评论中想念他们。 :) –