Rails3 Группа продуктов - PullRequest
       5

Rails3 Группа продуктов

0 голосов
/ 25 февраля 2011

Нужна помощь в выяснении этого.

есть модель продукта:

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

Имейте модель позиции. Довольно много копирует модель продукта, кроме:

class LineItem
    :order_id 
    :customer_id
    :company_id
end

Теперь необходимо выяснить, как добавить группу продуктов, которая будет состоять из нескольких продуктов и иметь тот же атрибут, что и модель продукта. Обычно я делаю таблицу соединений с: ids, но мне нужна возможность редактировать цену и стоимость каждого продукта в группе.

Остановился на этом.

Ответы [ 3 ]

0 голосов
/ 25 февраля 2011
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 голосов
/ 25 февраля 2011

Не знаю, получу ли я его, если вам нужно связать набор продуктов с группой продуктов, почему вы не используете ": has_many products" в модели ProductGroup и ": own_to ProductGroup" в модели Product .

Тогда, если вам нужно отредактировать цену для каждого Продукта, который принадлежит определенной Группе продуктов, вы можете сделать что-то вроде:

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

или что-то в этом роде.

0 голосов
/ 25 февраля 2011

Вы имеете в виду, что каждый Продукт в Группе может иметь цену, независимую от его обычной цены за пределами Группы (например, связанный Продукт может быть обесценен)?

Если это так, не означает ли это, чтоМодель ProductGroup и модель ProductGroupProduct (содрогание)?

Редактировать: Вы также можете добывать Spree для идей:

https://github.com/spree/spree

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...