English 中文(简体)
铁路多形态模型:动态领域
原标题:Ruby on rails polymorphic model: dynamic fields

附录一 项目

class Item
  include Mongoid::Document
  field :category
end

每个类别确定哪些领域应当包含项目。 例如,“第1类”中的项目应包含更多称为<条码>的示意图/代码,“第2类”的项目应包含以下领域:<条码>、<条码>和<条码>。 所有领域都属于基本类型:体积、分类等。

这些额外价值将作为文件储存地储存在mongodb:

> db.items.find()                                                   
{ "_id" : ObjectId("4d891f5178146536877e1e99"), "category" : "category1", "text" : "blah-blah" }
{ "_id" : ObjectId("4d891f7878146536877e1e9a"), "category" : "category2", "weight" : 20, "color" : "red" }

电池也储存在 m布。 外地组合由管理人管理。

> db.categories.find()                                                                 
{ "_id" : "category1", "fields" : [ { "name" : "text", "type" : "String" } ] }
{ "_id" : "category2", "fields" : [
    {
        "name" : "weight",
        "type" : "Integer"
    },
    {
        "name" : "color",
        "type" : "String"
    }
] }

用户需要将含有html的物项按特定项目类别界定的所有额外领域的价值分类。

The question is

What approaches could I take to implement this polymorphism on rails?

请提供详细资料,说明评论意见。

问题回答

仅按项目分类,Mongoid将照顾其他,例如储存类型。

class TextItem < Item; end

铁路会像它一样,但你可能希望使用“becomes”方法,因为这种方法将使得形成更舒适和更容易的道路:

https://github.com/romanbsd/mongoid/commit/9c2f4b7b1bc0f602da4b059323565ab1df3cd6”rel=“nofollow”https://github.com/romanbsd/mongoid/commit/9c2fb7b1bc0f602bc0f602da4b05954b2359365ab1df3cd6





相关问题
rails collection_select vs. select

collection_select and select Rails helpers: Which one should I use? I can t see a difference in both ways. Both helpers take a collection and generates options tags inside a select tag. Is there a ...

SSL slowness in EC2

We ve deployed our rails app to EC2. In our setup, we have two proxies on small instances behind round-robin DNS. These run nginx load balancers for a dynamically growing and shrinking farm of web ...

Auth-code with A-Za-z0-9 to use in an URL parameter

As part of a web application I need an auth-code to pass as a URL parameter. I am currently using (in Rails) : Digest::SHA1.hexdigest((object_id + rand(255)).to_s) Which provides long strings like : ...

RubyCAS-Client question: Rails

I ve installed RubyCAS-Client version 2.1.0 as a plugin within a rails app. It s working, but I d like to remove the ?ticket= in the url. Is this possible?

activerecord has_many :through find with one sql call

I have a these 3 models: class User < ActiveRecord::Base has_many :permissions, :dependent => :destroy has_many :roles, :through => :permissions end class Permission < ActiveRecord::...

Ordering a hash to xml: Rails

I m building an xml document from a hash. The xml attributes need to be in order. How can this be accomplished? hash.to_xml

Text Editor for Ruby-on-Rails

guys which text editor is good for Rubyonrails? i m using Windows and i was using E-Texteditor but its not free n its expired now can anyone plese tell me any free texteditor? n which one is best an ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签