Вы можете смоделировать это следующим образом: если вы получите список идентификаторов записей базы данных в некоторой переменной (например, people_ids
), вы можете получить что-то вроде первой итерации:
Kiba.parse do
source Kiba::Common::Sources::Enumerable, -> { people_ids }
transform do |person_id|
Enumerator.new do |y|
# here some HTTP query for search, retrieval of tags etc, and
# you would yield each result in a loop
y << {person_id: person_id, tags: [...] }
end
end
transform Kiba::Common::Transforms::EnumerableExploder
# SNIP
end
Как для тегов, если они уже есть в вашей базе данных и в небольших объемах, вы должны были бы загрузить их на ранней стадии, чтобы создать некую форму таблицы поиска:
tags = {}
Kiba.parse do
pre_process do
# here preload the tags & data required to decide on your business logic
end
# SNIP
end
Таким образом, вы можете позже связывать в конвейере каждое входящее тег с соответствующим идентификатором тега в вашей базе данных, и просто используйте ActiveRecord
для вставки отношения.
В качестве альтернативы, если вы хотите уже построенное решение для быстрых вставок / upserts с нашей поддержкой поставщика, вы можете также используйте Kiba Pro , следовательно, поддерживая разработку версии с открытым исходным кодом тоже!
Надеюсь, что это правильно ответит на ваш вопрос, не стесняйтесь комментировать иное!