Привет, я очень новичок в рельсах и нуждаюсь в некоторой помощи при итерации через вложенные массивы. Я пытаюсь понять, как делать массовые вставки для каждого значения, которое отличается между маркой, моделью и цветом автомобилей.Rails - Итерация через вложенные массивы
В Титулах, которые проход являются:
"make" => ["Honda", "Honda"],
"model" => ["Civic", "Accord"],
"color" => [{"Black", "White", "Red"}, {"Black", "White"}]
Так что с этим Params прошел, я хотел бы иметь 5 вставок произойти.
1. Honda - Civic - Black 2. Honda - Civic - White 3. Honda - Civic - Red 4. Honda - Accord - Black 5. Honda - Accord - White
Вот что я получил до сих пор, что толкает запрос вставки, что создает его. Но я не уверен, как сделать это вставить 5 раз в зависимости от того, что я перечислил выше:
def self.cars(make, model, color)
inserts = []
color.each do |i|
inserts.push "('#{make}', '#{model}', '#{i}')"
end
Foo.connection.execute "INSERT INTO car_inventory (make, model, color) VALUES #{inserts.join(", ")}"
end
спасибо Джереми, я дам, что попробовать. Имеет смысл использовать индекс во время итерации. Кроме того, thx для предложения санитарии. – oprogfrogo
Джереми, не могли бы вы так помочь в подобной проблеме. Я понял, как все еще использовать form_for и вложенные массивы для отправки на контроллер. Но я не уверен, как делать с ней массовые вставки. У меня есть следующие параметры: «car» => {«make» => «Honda», «color» => [«0», «черный», «0», «белый», «0», «красный», ], «model» => «Accord», «tinted» => «yes»}. Есть ли в любом случае, чтобы активная модель делала 3 вставки сразу, видя, что в параметрах есть 3 'цвета'? – oprogfrogo