我想对可以在运行时更改的电子商务产品属性进行建模。
例如,在“创建产品”页面上,用户会添加具有以下属性的特定产品:颜色,尺寸。然后添加一些具有不同属性的其他产品:分辨率,对角线大小。 基本上,用户可以在运行时定义新属性。
如何处理产品模型中的变量属性?我习惯于关系数据库,其中每个表的字段都是先验定义的。
编辑:我正在使用Mongoid。让我更具体一点。假设我有这个产品型号:
class Product
include Mongoid::Document
field :title
field :description
field :price
# attributes not known yet ???
end
产品的其他字段在模型中明确定义,但不是属性。也许Mongoid / MongoDB不关心它们是否在模型中定义,只是将它们添加到文档中?
答案 0 :(得分:1)
它已经为你完成了。它只是有效。添加属性并保存。 它是如何完成取决于你正在使用的适配器。
Here's a simple guide to setting it up from MongoDB.org。 并this page has documentation you'd need if you're using MongoMapper.
使用Mongoid?再次,只需设置属性(您必须像哈希一样设置和访问它们:使用[]=
和[]
),并保存它。 Dynamic fields!