Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > При .save избавиться от цикла


Автор: ky0x5a 19.10.2012, 14:26
Доброе время суток, у меня есть код:
Код

        cart.cart_items.each do |i|
            next unless items.key?(i.id.to_s)
            order_items = OrderItem.new( :product_id => i.product_id,
                :quantity => i.quantity,
                :price => i.product.price,
                :order_id => order.id ).
                    save
                # общая сумма товара для уведомления
                ordering[order.id][:amount] += i.product.price
            # очисtить позиции в cart_items
            cart.cart_items.find(i.id).delete
        end


этот код делает перенос позиций из  cart_items в order_items,  мне  нужно его переделать таки образом, что бы сохранение в базу было вынесено из цикла, но я не знаю как, помоги пожалуйста, очень нужно

Автор: source777 20.10.2012, 15:29
Возможно order_items привязаны к заказу.. тогда 
Код

        cart.cart_items.each do |i|
            next unless items.key?(i.id.to_s)
            order.order_items << OrderItem.new( :product_id => i.product_id,
                :quantity => i.quantity,
                :price => i.product.price,
                :order_id => order.id )
                # общая сумма товара для уведомления
                ordering[order.id][:amount] += i.product.price
            # очисtить позиции в cart_items
            cart.cart_items.find(i.id).delete
        end
        order.save

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)