作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为同一产品设计不同颜色、尺寸、数量和价格的模型。
这是我目前的模型方案,
Product
* Name
* Price
* Color
* Quantity
* Size
COBBLE HILL TEE
COBBLE HILL TEE
不同颜色和尺寸的产品模型中必须有不同的不同产品实例,对吗?
COBBLE HILL TEE
但它们在模型中是不同的实例
`COBBLE HILL TEE`, `$39`, `Red`, `1`, `XL`
`COBBLE HILL TEE`, `$39`, `White`, `3`, `L`
`COBBLE HILL TEE`, `$37`, `White`, `5`, `S`
COBBLE HILL TEE
。 , 对 ?
product_sn
的列吗? , 当这些记录在
product_sn
中具有相同的值时,他们应该聚集在同一个购物页面吗?
最佳答案
我爱modularity在软件中,并相应地创建模型。我想你会从这个想法中受益,所以我会为你解释一下:
型号
我喜欢保留模型以使模型具有可扩展性——因此您可以添加 1,000,000 个项目,并且仍然让它以正确的方式工作。
为此,我们有“孤岛”数据库(我不确定这是否是正确的术语),然后围绕它有“引用”模型。
“筒仓”数据库/模型基本上存储静态数据(例如 products
或 users
)。引用数据库/型号基本都给silo
数据库范围更广——比如添加options
至products
或 profile
对于 users
.
在你的情况下,我肯定会这样做:
#app/models/product.rb
Class Product < ActiveRecord::Base
has_many :options, as: :optable do
def colours
where name: "colour"
end
end
end
#app/models/option.rb
Class Options < ActiveRecord::Base
belongs_to :optable, polymorphic: true
end
#products
id | name | SKU | stock | etc | etc | created_at | updated_at
#options
id | optable_type | optable_id | name | value | created_at | updated_at
options
模型与其他不相关的模型一起使用):
@product = Product.find params[:id]
@product.options #-> returns all `Option` records for `product` (`price`, `size`, `etc`)
#config/routes.rb
resources :products, only: :show #-> domain.com/products/14
#app/controllers/products_controller.rb
class ProductsController < ActiveRecord::Base
def show
@product = Product.find params[:id]
end
end
#app/views/products/show.html.erb
<%= @product.name %>
<% @product.options.each do |option| %>
<%= option.size %>
<%= option.price %>
<%= option.colour %>
<% end %>
product
的
colour
选项,然后您可以执行以下操作:
@product = Product.find params[:id]
@product.options.colours #-> will output all colours for the product
options
我提供的内容没有任何结构。如果您想拥有一个特定的
set
产品的选项(如
size
、
colour
、
quantity
对于特定产品,您可能希望在
self-referential
模型中使用
Option
association,如果您愿意,我可以这样做
关于ruby-on-rails - 网购商城产品模型的优化设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24102653/
在调整 Shopify 中的“上一个产品”和“下一个产品”功能时遇到问题。 我想将其设置为“上一个”和“下一个”循环遍历所有产品,轮播样式。 到达最后一个产品后,“下一个”将带您返回第一个产品。目前,
我是一名优秀的程序员,十分优秀!