Я искал документы Elixir и Phoenix, а также несколько других сайтов, таких как Изучить эликсир без везения. Вот как это выглядит:
defp update_positions(item_ids) do
item_ids = String.split(item_ids, ",")
|> Enum.map fn item_id -> String.to_integer(item_id) end
items = Repo.all(Item |> where([item], item.id in array(^item_ids, :integer)))
item_hash = Enum.reduce items, %{}, fn item, map -> Map.put(map, item.id, item) end
item_ids
|> Stream.with_index
|> Enum.each fn {item_id, index} ->
item = item_hash[item_id]
Repo.update(%{item | position: index + 1})
end
end
Сначала я подумал, что это символ символа продолжения строки, чтобы читать код, но строка Item |> where
, указанная выше, предполагает иное. Является ли это пониманием списка или чем-то, определяющим типы ввода?