mongoid模型中的静态子字段

时间:2014-06-09 08:37:20

标签: ruby-on-rails mongoid

我正在Angular.js上阅读这个tutorial,我试图在带有Mongoid的Ruby on Rails上实现这个目的。

在本教程中,数据存储在.json个文件中,遵循此格式(仅为图片的一部分):

{
    "additionalFeatures": "MOTOBLUR-enabled; battery manager; seven home screens; customize by moving or resizing widgets; Android HTML WebKit w/Flash Lite; BACKTRACK\u2122 navigation pad behind screen", 
    "android": {
        "os": "Android 2.1", 
        "ui": "MOTOBLUR"
    }, 
    "availability": [
        "T-Mobile,", 
        "Telus"
    ], 
    "battery": {
        "standbyTime": "267 hours", 
        "talkTime": "5 hours", 
        "type": "Lithium Ion (Li-Ion) (1170 mAH)"
    }, 

我的问题如下:

我知道我可以为“android”键创建另一个模型(依此类推),它包含两个字段的哈希值“os”和“ui”。这些字段始终相同。但是,我认为这有点矫枉过正。我想在主模型中添加它们(让我们称之为“Phone”)会更有效,即避免使用embedded_in,embeds_one与其他模型的关系。

有没有办法在不使用其他模型的情况下实施embeds_oneembeds_many功能?

类似的东西(不正确,但要指出):

field :additionalFeatures, type: String
field :android do
    field :os, type: String
    field :ui, type: String
end

1 个答案:

答案 0 :(得分:0)

如何将Hash用作字段类型:

field :android, type: Hash, :default => {os: '',ui: ''}