过滤不同资源列表的ID

时间:2017-10-09 09:52:22

标签: elixir phoenix-framework ecto

设置

mix phx.gen.html Products Fruit fruits name
mix phx.gen.html Products Vegetable vegetables name

我有一份水果和蔬菜清单products

products = []
products = products ++ Products.get_fruits!(1)
products = products ++ Products.get_vegetables!(1)
products = products ++ Products.get_fruits!(2)

问题

如何获取该列表id中所有fruits和所有vegetables的{​​{1}}个?

我想到了这样的事情:

products

是否有一种更简单的方法来过滤所有ID?

1 个答案:

答案 0 :(得分:2)

我使用2 for代替for忽略了与模式不匹配的元素而不是引发错误的事实。还没有必要对要忽略的字段进行模式匹配。

vegetable_ids = for %Abc.Products.Vegetable{id: id} <- products, do: id
fruit_ids = for %Abc.Products.Fruit{id: id} <- products, do: id