Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BasketController
- # Не CRUD
- # Я бы сделал два контроллера
- # OrderItemsController с экшном create в котором бы добавлял товары Item к заказу Order через join-таблицу OrderItem.
- # BasketController с экшном show в котором бы просто отображал заказ Order и связанные с ним товары Item, ну или, если надо какие-то столбцы из join-таблицы
- def add_to_basket
- # может это логика, но искать лучше по уникальному id (несколько товаров могут иметь одно название)
- item = Item.find_by_title(params[:item_title])
- # Использовать глобальные переменные, если это не константа - плохо
- basket = $basket
- basket.add_item(item)
- # flash[:notice] = "Слишком много товаров в корзине" if basket.count_items > 10
- if basket.count_items > 10
- basket.error_messages.add("Слишком много товаров в корзине")
- end
- # Переименовать total в total_price
- # Вынести в сервис
- total = 0
- basket.items.each do |basket_item|
- total += basket_item.price
- end
- session[:basket_total] = total
- # переписать BasketItem.create(basket_id: basket.id, item_title: item.title, basket_type: 3)
- query = "INSERT INTO basket_items (basket_id, item_title, basket_type) VALUES '" +
- (:basket=>basket_id.to_s) +
- "', '" + params[:item_title] + "', 3)"
- results = ActiveRecord::Base.connection.execute(query)
- Basket.add_free_delivery(basket)
- ## flash[:notice] = "Добавлен товар в корзину: #{@item.title}"
- return "<h1>Добавлен товар в корзину: #{@item.title}</h1>"
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement