2013-07-25 2 views
0

나는 이와 같은 연관을 만들고 있습니다.레일을 사용하는 모델 연결 방법

세 개의 테이블이 있습니다.

Product, Category 

    p1 ----> c1(1) 
    p1 ----> c2(2) 
    p1 ----> c3(3) 

    p2 ----> c2(1) 
    p2 ----> c3(2) 
    p3 ----> c4(3) 

제품의 각 종류 순서 (정렬)이다. 제품 카테고리의 순서를 반복해서는 안됩니다.

이 경우 제품 has_many :categoriescategory has_many :products을 사용하여 through :xyz table을 사용해 보았습니다. 그러나 카테고리의 순서는 마지막 변경시 동일하게 유지됩니다.

내가 방금 조인 테이블에 sort 열을 추가 할 수 product_categories라고 당신의 테이블에 가입한다고 가정 제품 카테고리 및 주문 레일 3 방법

+0

은 어떻게 주문 하시겠습니까을 카테고리? 알파벳순으로? 'xyz' 협회를 만들 때 선택된 순서대로? –

+0

범주는 숫자 필드의 순서 여야합니다. 나는 product.categories를 줄 때 sort_order를 숫자 값으로 설정하는 범주 목록을 제공해야합니다. – vajapravin

+0

주문에 대한 의미를 명확히하십시오. – Btuman

답변

0

사이의 연결을 만들려고합니다.

그럼 당신은 다음처럼 has_many through 연결을 설정할 수 있습니다

has_many :product_categories 
has_many :categories, through: :product_categories, order: 'product_categories.sort' 

ProductCategory 모델에 기본 범위를 추가하는 것 일 수있는 또 다른 옵션 :

default_scope order(:sort) 
+0

보기 및 컨트롤러에서 삽입 및 업데이트하는 동안 정렬 열의 값을 설정하는 방법 – vajapravin

관련 문제