2011-02-25 3 views
0

알아내는 데 도움이 필요합니다. Rails3 제품 그룹

class Product 
    :name 
    :short_description 
    :price 
    :cost 
    :visible 
    :new_service 
    :deleted 
    :category_id 
end 

광고 항목 모델 유무 :

는 제품 모델 되세요. 거의 복사 제품 모델 제외 :
class LineItem 
    :order_id 
    :customer_id 
    :company_id 
end 

지금 의지는 여러 제품 구성 제품 그룹을 추가하고 제품 모델과 동일한 ATTR을 모두 수행하는 방법을 알아낼 필요가있다. 일반적으로 ID를 사용하여 조인 테이블을 작성하지만 그룹의 각 제품에 대한 가격 및 비용을 편집 할 수있는 기능이 필요합니다.

이 부분을 우연히 만났습니다.

답변

0
class ProductGroup 
    has_many :special_products 
end 

class SpecialProducts 
    belongs_to :product 
    belongs_to :product_group 

    #attributes for overridden prices 
    #delegate other attributes to product 
    delegate :name, :to => :product, :allow_nil => true 
end 

class Product 
    has_many :special_products 
    has_many :product_groups, :through => :special_products 
end 
+0

그래서 제품 그룹에는 기본 판매 가격, 이름 및 설명이 있습니다 (그룹에 실제로 필요한 모든 것입니다). 그런 다음 특별 제품은 가격이 필요한 타고난 속성이있는 조인 테이블이됩니다 각 제품에 대해? 즉 SpecialProducts의 스키마는 product_id, product_group_id, : price와 같을 것입니다. 여기서, price는 그룹의 새 가격입니다. – pcasa

+0

대리인이 내 양식에서 올바르게 작동하도록 할 수 없습니다. 만약 당신이 어떤 포인터를 가지고 있다면 크게 감사 할 것입니다. 감사합니다 – pcasa

+0

위임 된 메서드에서 실제로 폼을 시도한 적이 없지만 작동하지 않는 경우에는 중첩 된 모델을 사용하여 해당 필드를 가져올 수 있습니다. 'fields_for'폼 도우미를 찾습니다. – DGM

0

귀하는 그룹 내의 각 제품이 그룹 외부의 정상 가격과 독립적 인 가격을 가질 수 있음을 의미합니까 (예 : 번들 제품이 할인 될 수 있음)?

그렇다면 ProductGroup 모델과 ProductGroupProduct (떨림) 모델을 암시하지 않습니까?

편집 : 당신 수 아이디어도 내 야단법석 :

https://github.com/spree/spree

0

나는 그것을 얻을 경우 관계에 ProductGroup, 왜와 제품의 집합이 필요하면 내가 모르는 ProductGroup 모델에는 ": has_many products"를 사용하지 않고 Product 모델에는 ": belongs_to ProductGroup"을 사용하지 마십시오.

그럼 당신은 당신이 뭔가 할 수있는 특정 ProductGroup에 속한 각 제품의 가격을 수정해야하는 경우 : 같은

products = ProductGroup.find(2).products 
products.each do |product| 
    product.price = 12.00 
    # More code... 
end 

또는 무언가를.

+0

그건 처음에 생각한 것이지만, 추가 속성이있는 조인 테이블에서 레일스가 어떻게 관계를 맺는 지 익숙하지 않습니다. 즉, 제품 그룹이 2 개의 제품으로 구성되는 경우 제품 A의 가격은 3 달러가 될 수 있습니다. 제품 그룹이 5 개의 제품으로 구성되는 경우 제품 A의 가격은 $ 2.50입니다. – pcasa