0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
prepared_items = @cart.prepare_sort
errors = []
orders = []
ActiveRecord::Base.transaction do
address_create = create_new_address address_params if order_params[:address_attributes].present?
prepared_items.each do |type, items|
next unless items.present?
user = current_user.class.name == 'User' ? { user_id: current_user.id } : { user_id: nil }
case type
when :order then @order = Order.new(order_params.merge(user))
when :preorder then @order = Order.new(order_params.merge(user.merge(status: 'preorder')))
when :b_y then @order = Order.new(order_params.merge(user.merge(delivery: 'pick_up', store_id: Settings.store.for_by)))
end
@order.is_mobile = mobile_device?
@order.promo_code = @cart.promo_code
@order.promotion = Promotion.for_line_items(@cart)
good_promotion = Promotion.good_promotion_with_bonus(@cart)
if good_promotion && @cart.used_promotion_discount > 0
@order.bonus_promotion = good_promotion.promotion
@order.stored_bonus_promotion_discount = @cart.used_promotion_discount
end
items.each{ |item| @order.add_line_item item }
address_create.orders << @order if address_create.present?
if @order.save
orders << @order
else
errors += @order.errors.full_messages
end
# Are you fucking serious?
end if errors.empty?
чувак спутал цикл и each с блоком, печалька. код из реального проекта
Запостил:
tribals ,
07.04.2016 (Updated 29.03.2018 )
как вы только на нем пишите?
а тут же типа скриптовый язык
программерс бест френд