2011-09-18 2 views
0

레일에 판매 시점 애플 리케이션을 만들려고 해요레일 has_many : 통해

지금은 항목 모델이 있습니다. items 모델에는 상점에서 보유한 다양한 항목이 들어 있습니다.

이제 주문 모델을 만들고 싶습니다. 아이디어는이 모델이 각 주문에 대해 항목과 수량을 포함한다는 것입니다. 나는 analytics 등을 생성하기 위해 주문의 역사를 볼 수있을 것이다.

이것을하는 올바른 방법은 무엇입니까?

has_many : through? Redis sets? 다른 아이디어?

답변

1

일반적인 접근 방식은 OrderLine 모델을 사용하는 것입니다. 여기서 주문한 각 품목의 수량을 저장합니다.

class Order 
    has_many :order_lines 
    has_many :items, :through => :order_lines 
end 

class OrderLine 
    belongs_to :order 
    belongs_to :item 
end 
+0

자세히 설명해 주시겠습니까? – Alex

+0

감사합니다. orderline에서 마이그레이션 및/또는 attr_accessible 변수가 필요합니까? – Alex

+0

OrderLine 모델을 만들려면 이전이 필요합니다. Order 클래스와는 별도의 파일에 있어야하는데, 편의상 위의 클래스를 결합했습니다. attr_accessible은 컨트롤러 코드를 작성하는 방법에 따라 다릅니다. –

관련 문제