Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. class BasketController
  2. # Не CRUD
  3. # Я бы сделал два контроллера
  4. # OrderItemsController с экшном create в котором бы добавлял товары Item к заказу Order через join-таблицу OrderItem.
  5. # BasketController с экшном show в котором бы просто отображал заказ Order и связанные с ним товары Item, ну или, если надо какие-то столбцы из join-таблицы
  6. def add_to_basket
  7. # может это логика, но искать лучше по уникальному id (несколько товаров могут иметь одно название)
  8. item = Item.find_by_title(params[:item_title])
  9. # Использовать глобальные переменные, если это не константа - плохо
  10. basket = $basket
  11.  
  12. basket.add_item(item)
  13. # flash[:notice] = "Слишком много товаров в корзине" if basket.count_items > 10
  14. if basket.count_items > 10
  15. basket.error_messages.add("Слишком много товаров в корзине")
  16. end
  17. # Переименовать total в total_price
  18. # Вынести в сервис
  19. total = 0
  20.  
  21. basket.items.each do |basket_item|
  22. total += basket_item.price
  23. end
  24.  
  25. session[:basket_total] = total
  26. # переписать BasketItem.create(basket_id: basket.id, item_title: item.title, basket_type: 3)
  27. query = "INSERT INTO basket_items (basket_id, item_title, basket_type) VALUES '" +
  28. (:basket=>basket_id.to_s) +
  29. "', '" + params[:item_title] + "', 3)"
  30.  
  31. results = ActiveRecord::Base.connection.execute(query)
  32.  
  33. Basket.add_free_delivery(basket)
  34. ## flash[:notice] = "Добавлен товар в корзину: #{@item.title}"
  35. return "<h1>Добавлен товар в корзину: #{@item.title}</h1>"
  36.  
  37. end
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement