开发者

Variable number of fields with MongoDB in Rails

I want to model e-commerce product attributes that can be changed in run-time.

So for example, on the Create Product page, the user adds a certain product with attributes: color, size. And then adds some other product with different attributes: resolution, diagonal size. Basically the user is able to define new attributes at run-time.

How do I handle variable attributes in the product model? I'm used to relational databases where the fields of each table are defined a priori.


Edit: I'm using Mongoid. Let me be more specific. Let's say I have this product model:

class Product
开发者_开发问答  include Mongoid::Document
  field :title
  field :description
  field :price
# attributes not known yet ???
end

The other fields of the product are clearly defined in the model, but not the attributes. Perhaps Mongoid/MongoDB doesn't care whether they are defined in the model or not, and just adds them in the document?


It's done for you. It just works. Add the attributes and save them. How it's done depends on what adapter you're using.

Here's a simple guide to setting it up from MongoDB.org. And this page has documentation you'd need if you're using MongoMapper.

Using Mongoid? Again, just set attributes (you'll have to set and access them like a hash: use []= and []), and save it. Dynamic fields!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜