대량 구매(Lump Sum) 스케줄링
세션에 저장된 선택 품목을 카트 기능으로 요약하는 기능
"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."이러한 오류 메시지는 모델과 연관되어 있습니다.
오늘의 공부.
Reference
이 문제에 관하여(대량 구매(Lump Sum) 스케줄링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/swata_dev/articles/9ea8f6a7cb61b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)