Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 电子商店应用程序的模型关联_Ruby On Rails 3_Web Applications_Associations_Models_Polymorphic Associations - Fatal编程技术网

Ruby on rails 3 电子商店应用程序的模型关联

Ruby on rails 3 电子商店应用程序的模型关联,ruby-on-rails-3,web-applications,associations,models,polymorphic-associations,Ruby On Rails 3,Web Applications,Associations,Models,Polymorphic Associations,我正在使用RubyonRails开发一个电子商店应用程序,我对模型关联有点困惑。如果有人能给我一个关于表格及其关联的想法,那将对我有所帮助。详情如下: 父表: =>类别, 场合, 热门交易 分类如下: =>男人, 女人, 孩子们 在男子统治下: =>衬衫, 裤子 在妇女项下: =>衬衫, 裤子 裙子 儿童: =>衬衫, 裤子 有时 =>种族, 政党 长途行走 随便的 正式的 热门交易 =>热门交易指数 最后,每个子表都有产品索引 谢谢大家! 对于这样的东西,您通常要做的是构建一个与产品相关联的分

我正在使用RubyonRails开发一个电子商店应用程序,我对模型关联有点困惑。如果有人能给我一个关于表格及其关联的想法,那将对我有所帮助。详情如下:

父表: =>类别, 场合, 热门交易

分类如下: =>男人, 女人, 孩子们

在男子统治下: =>衬衫, 裤子

在妇女项下: =>衬衫, 裤子 裙子

儿童: =>衬衫, 裤子

有时 =>种族, 政党 长途行走 随便的 正式的

热门交易 =>热门交易指数

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


谢谢大家!

对于这样的东西,您通常要做的是构建一个与产品相关联的分类树,允许您将产品分组在一起。分类法和产品之间的多对多关系让我们将一个产品与多个组相关联,因此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
然后编辑它

def change
  create_table(:products_taxonomies, :id => false) do |t|
    t.references :product
    t.references :taxonomy
  end
end
在此基础上,您将在数据库中创建3个分类单元,每个部分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
然后,当您创建一个产品时,您可以将其与分类法关联,并使用该分类法调出与之关联的产品列表

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