在Rails中使用MongoDB的可变数量的字段

时间:2011-05-13 19:10:15

标签: ruby-on-rails mongodb attributes mongoid entity-attribute-value

我想对可以在运行时更改的电子商务产品属性进行建模。

例如,在“创建产品”页面上,用户会添加具有以下属性的特定产品:颜色,尺寸。然后添加一些具有不同属性的其他产品:分辨率对角线大小。 基本上,用户可以在运行时定义新属性。

如何处理产品模型中的变量属性?我习惯于关系数据库,其中每个表的字段都是先验定义的。


编辑:我正在使用Mongoid。让我更具体一点。假设我有这个产品型号:

class Product
  include Mongoid::Document
  field :title
  field :description
  field :price
# attributes not known yet ???
end

产品的其他字段在模型中明确定义,但不是属性。也许Mongoid / MongoDB不关心它们是否在模型中定义,只是将它们添加到文档中?

1 个答案:

答案 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