电子商店应用的模型关联

时间:2011-09-27 05:56:07

标签: ruby-on-rails-3 web-applications associations models polymorphic-associations

我正在开发一个使用ruby on rails的电子商店应用程序,我对模型关联有点困惑。如果有人能给我一个关于表格及其关联的想法,这对我有帮助。以下是详细信息:

父表: =>分类, 场合, 热门优惠

在类别下: =>男性, 女性, 儿童

男士: =>衬衫, 裤

在女性之下: =>衬衫, 长裤, 裙

在孩子们之下: =>衬衫, 裤

在场合下 =>族裔, 派对, 旅行, 休闲, 正式

根据特价促销 =>热卖指数

最后,每个最后一个子表都有产品索引。

谢谢!

1 个答案:

答案 0 :(得分:0)

您通常会对此类内容进行操作,即构建与产品相关联的分类树,以便将产品组合在一起。分类和产品之间的多对多关系让您将产品与多个组相关联,因此T恤可能属于分类>男士>衬衫以及场合>随意。

# app/models/taxonomy.rb
class Taxonomy < ActiveRecord::Base
  has_many :taxonomies
  has_and_belongs_to_many :products
end

# app/models/product.rb
class Product < ActiveRecord::Base
  has_and_belongs_to_many :taxonomies
end

然后在分类/产品

之间迁移连接表
rails g migration create_products_taxonomies

并编辑

def change
  create_table(:products_taxonomies, :id => false) do |t|
    t.references :product
    t.references :taxonomy
  end
end

从那里你基本上会在数据库中创建3个Taxons,每个部分创建1个,然后创建分类法并构建子级别。在创建产品时,请为产品和集合分配正确的分类标准。

种子文件可能看起来像......

Taxonomy.create!(:name => "Category").tap do |category|
  category.taxonomies.create!(:name => "Men").tap do |men|
    men.taxonomies.create!(:name => "Shirt")
    men.taxonomies.create!(:name => "Trousers")
  end
  # and so on for each category
end

然后,当您创建产品时,您可以将其与分类法关联,并使用该分类法来提取与其关联的产品列表。