Как добавить несколько моделей в корзину Rails - PullRequest
0 голосов
/ 15 марта 2012

Подскажите, пожалуйста, как добавить товар в корзину.Rails Agile объясняет, как добавлять товары в тележки через line_items.Допустим, мои сайты предлагают туристические пакеты, услуги лимузинов, квартирные комнаты, некоторые другие предложения.Клиент добавляет лимузин, турпакет, предлагает в корзину и оплачивает его.Разные модели модели Package, модель Limo, модель Apartment и другие модели.если так, когда я добавляю в корзину через line_items (cart_id, product_id), я не могу понять, как добавить другие модели.Или я должен связать все модели с моделью продукта?Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 22 апреля 2013

Вы упоминаете, что модели слишком разные (с точки зрения атрибутов).Поэтому наследование одной таблицы может быть не тем, что вы хотите.В этом случае используйте полиморфную ассоциацию для достижения этой цели.

class LineItem < ActiveRecord::Base
  belongs_to :purchasable, :polymorphic => true
end

class Tour < ActiveRecord::Base
  has_many :line_items, :as => :purchasable
end

class LimoService < ActiveRecord::Base
  has_many :line_items, :as => :purchasable
end
0 голосов
/ 15 марта 2012

Возможно, вам не нужна отдельная модель для каждого типа продукта. Вы можете разбить продукты на разные категории. Таким образом, вам понадобится только одна дополнительная модель - модель категории. Каждый товар будет принадлежать к категории (а в категории будет много товаров). В базе данных каждый продукт будет иметь category_id.

Как это:

class Product < ActiveRecord::Base

  belongs_to :category
....


class Category < ActiveRecord::Base
  has_many :products

...

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