【发布时间】:2017-03-07 14:06:40
【问题描述】:
我有一个User 模型与has_many 关系到other_model。
我有一个搜索互联网的函数Search。我想做的是仅当has_many 关系不是空数组时才搜索互联网。
所以我想知道是否可以对非空数组进行模式匹配?正如您在下面看到的,额外的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 = [_ | _]} <- ...? -
我需要 some_associatuons 不为空。嗯,我回家后会试试的。没想到你能做到……
-
@Dogbert 您需要发布其中一些作为答案 :) 人们会在 cmets 中想念他们。 :)
标签: elixir