대량 구매(Lump Sum) 스케줄링

5652 단어 RailsRubytech
아메타입니다.
세션에 저장된 선택 품목을 카트 기능으로 요약하는 기능

"Lump Sum Function"


이 과정에서 중요하게 여겨진 요점을 요약한다.
이하 상품은dish.

유형 방법


# models/order_detail.rb

...
  def self.create_items(order, line_items)
    line_items.target.each do |item|
      OrderDetail.create!(
        order_id: order.id, dish_id: item[:dish_id], quantity: item[:quantity]
      )
      LineItem.find(item[:id]).delete
    end
  end
...

클래스 방법self.create_items을 정의했다.
카트 기능으로 저장된 상품에 주문 id를 추가하여 Order detail 기록을 생성합니다.
그리고 카드에 있는 LINE item의 기록을 삭제합니다.
# controllers/orders_controller.rb

...
  def create
    @order = Order.new(set_params)
    if @order.valid?
      pay_dish
      @order.save
      OrderDetail.create_items(@order, @cart.line_items)
      redirect_to root_path
    else
      render :new
    end
  end
...
  
아까의 종류를 호출한다.
OrderDetail.create_items(@order, @cart.line_items)
@cart는 실례 변수로 흔히 볼 수 있기 때문에'line item'의 기록을 삭제해야 합니다.

연관성


before(아이템 구매)


  belongs_to :dish
이것만 필요합니다dish_id.

after(대량 구매)


  # models/order.rb
  
  has_many :dishes, through: :order_details
  has_many :order_details, dependent: :destroy
order_details는 중간표order에 의존한다.dish와 함께 각자order_id와 관련된 정보를 보관한다.

Summary Of The Day (SOTD)


변경 연관성이 없어 아이템 구매 시 시작해야 한다는 오류 메시지가 나왔다.
"〜 must exist."이러한 오류 메시지는 모델과 연관되어 있습니다.

오늘의 공부.

좋은 웹페이지 즐겨찾기