使用Rails

时间:2017-12-06 05:31:17

标签: ruby-on-rails

我正在尝试使用带有基本实验的rails从头开始构建时尚电子商务网站。向产品添加产品属性的最佳方法是什么,例如。大小/颜色?

我试图通过基于此处的示例结构创建以下模型来实现:http://www.webassist.com/tutorials/Free-eCommerce-MySQL-Database。但是我正在努力实施,任何人都可以帮忙。

我的模型如下:

class Product < ApplicationRecord
    has_many :product_attributions
    has_many :product_attribute, through: :product_attributions
end

class ProductAttribute < ApplicationRecord
    has_many :product_attributions
    has_many :product, through: :product_attributions
    has_one  :product_attribute_group, through: :product_attributions
end

class ProductAttributeGroup < ApplicationRecord
    has_many :product_attributions
    has_many :product_attribute, through: :product_attributions
end

class ProductAttribution < ApplicationRecord
    belongs_to :product
    belongs_to :product_attribute
    belongs_to :product_attribute_group
end

ProductAttribute用于列出每个属性,例如s / m / l / red / blue
ProductAttributeGroup将每个ProductAttribute分配给一个组,例如size / color

我的架构如下:

create_table "product_attribute_groups", force: :cascade do |t|
    t.string   "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "product_attributes", force: :cascade do |t|
    t.string   "value"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "product_attributions", force: :cascade do |t|
    t.integer  "product_id"
    t.integer  "product_attribute_id"
    t.integer  "product_attribute_group_id"
    t.datetime "created_at",                 null: false
    t.datetime "updated_at",                 null: false
  end

  create_table "products", force: :cascade do |t|
    t.string   "title"
    t.string   "slug",                        null: false
    t.text     "description"
    t.decimal  "price"
    t.boolean  "status",      default: false, null: false
    t.datetime "created_at",                  null: false
    t.datetime "updated_at",                  null: false
  end

由于

0 个答案:

没有答案