Уважаемые знатоки, вот вопрос:
Есть некая xml, из нее необходимо взять данные из xml и создать nested_attribute
<engines>
<engine>
<id>24</id>
<properties>
<property>
<id_property>15</id_property>
<value>1013</value>
</property>
<property>
<id_property>13</id_property>
<value>Рядный</value>
</property>
<property>
<id_property>12</id_property>
<value>4</value>
</property>
<property>
<id_property>10</id_property>
<value>4.76</value>
</property>
<property>
<id_property>4</id_property>
<value>74</value>
</property>
<property>
<id_property>14</id_property>
<value>Жидкостное охлаждение</value>
</property>
<property>
<id_property>11</id_property>
<value>Tier 2</value>
</property>
<property>
<id_property>7</id_property>
<value>430</value>
</property>
</properties>
</engine>
</engines>
engines = @doc.xpath('/catalog/engines/engine')
engines.map do |engine|
id_property = engine.xpath('properties/property/id_property').map do |id_property|
id_property.text.strip
end
value = engine.xpath('properties/property/value').map do |value|
value.text.strip
end
values_attributes = [id_property, value]
puts values_attributes:
[id_property, value].transpose
{
property_id: id_property,
property_value: value
}
end
Приведенный код создает такое:
{:values_attributes=>[["15", "1013"], ["13", "Рядный"], ["12", "4"], ["10", "4.76"], ["4", "104"], ["14", "Жидкостное охлаждение"], ["11", "Tier 2"], ["7", "430"]]}
А необходимо:
values_attributes: [{property_id:'1', property_value:'2'}, {property_id:'2', property_value:'3'}]
Как это сделать?