2017-12-18 34 views
0

두 가지 모델 'Product'와 'Variant'가 있으며 제품에는 여러 변형이 있습니다. 이제 Variant에 많은 변형이있는 "Ingridient"라는 새 모델을 설정해야합니다. ingridients.but ingridents에 나는 다시 has_one 제품 및 variant.for 예동일한 모델과의 연결

나는 또한 같은 time.how에서 has_one 변형 및 has_one 제품을 원하는 내 ingrident 모델에서 지금
class Variant 
    has_many :ingridients 
    belongs_to :product 
end 

class Ingridient 
belongs_to :variant 
belongs_to :product 
end 

해야 내 연결을 설정하는 것이 보여주고 싶은 . 나는 같은 테이블과 여러 연관을 알고 있지만 내 app.Iam 내 데이터베이스로 mongoid를 사용하여 그것을 구현하는 방법을 몰라.

편집 : 실제로 내 흐름 사용자는 다양한 변형 제품으로 제품을 만들 수 있으며 각 변형 제품은 여러 개의 제품을 가질 수 있습니다. 각 제품마다 제품 및 변형 제품을 선택하기위한 선택 상자가 있습니다. 변형, 수량 등 필드. 더 명확하게 만들기 위해 조리법 만들기 .

+0

가 왜'has_one' 필요합니까 데 도움이되기를 바랍니다? 'Ingredient' 내부에서'self.variant'를 호출하여 동일한 변종에 접근 할 수 있습니다. 둘 다 어떻게 다른가요? –

+0

사실 내 데이터 흐름에, 나는 여러 가지 변형 된 제품을 만든 다음 각 varients.and ingridients에 대한 여러 ingridients를 가지고 내가 product_name과 variant_name을 다시 선택하는 선택 상자가 있습니다. 각 ingridient는 하나의 제품으로 구성되어야하며 하나의 변종. –

+0

그리고 그것은 'belongs_to'로 수행 할 수 없습니까? –

답변

0

나는 당신이하고 싶은 일에 100 % 명확하지 않습니다.

하지만 다른 이름을 가진 연결이 필요하다는 것입니다.

class Variant 
    has_many :ingridients, :foreign_key => 'FieldName', :class_name => 'CassName' 
    belongs_to :product, :foreign_key => 'FieldName', :class_name => "CassName" 
end 

class Ingridient 
belongs_to :variant, :foreign_key => 'FieldName', :class_name => "CassName" 
belongs_to :product, :foreign_key => 'FieldName', :class_name => "CassName" 
end 

나는이

+0

네 대답은 내가 원하는 변종에 매우 가깝다.하지만 변종 has_many : ingridents와 동시에 ingrident belongs_to : variant 및 또한 belongs_to : variant, forign_key => 'Fieldname', : class_name => "Classname" ? –