Я думаю, что самый простой способ сделать это, разделив ваш ввод следующим образом:
# Tasks
tasks = { id: XX, state: YY, ... }
# Descriptions
descriptions = { record_type: 'Task', record_id: XX, name: 'description', body: 'Actual body' }
Тогда вы можете сделать что-то вроде этого:
Task.insert_all(tasks)
ActionText::RichText.insert_all(descriptions)
Это то, что вы ищете?
============================================== ===============
Обновление:
Просто чтобы уточнить, как это работает, нам нужно понять, что модель RichText
работает как любая другая модель в Rails, но сериализуя информацию, как показано здесь: https://github.com/rails/rails/blob/master/actiontext/app/models/action_text/rich_text.rb#L11
Чтобы увидеть, что действительно извлекается из базы данных, мы можем использовать помощник *field*_before_type_cast
. Например:
descriptions = [ { record_type: 'Task', record_id: XX, name: 'description', body: '<p>EXAMPLE</p>' } ]
ActionText::RichText.insert_all(descriptions)
ActionText::RichText.last.body => <ActionText::Content....>
ActionText::RichText.last.body_before_type_cast => '<p>EXAMPLE</p>'
Также имейте в виду, что в каждой записи может быть один форматированный текст (это 1 - N полиморфная c ассоциация). Таким образом, если вы попытаетесь вставить вторую задачу description
для вашей задачи, она не будет работать