我正在编写一个显示来自MongoDB的对象的网站,其目的是使其尽可能灵活。为此,我创建了一个由以下对象组成的集合config
:
categories: {
"Title": { /// thats a displayed category title
[ collection: "collection_name", ] /// defaultize to title.snake_case
[ template: "some_template", ] /// defaultize to title.snake_case
[ css: { /// object will be passed to template
}, ]
fields: {
"Field Title": {
[name: "attribute_name" ,] /// defaultize to field_title.snake_case
[required: true or false, ] /// defaultize to false
[template: "template_name", ] /// defaultize to field_title.snake_case
[ css: { /// same as above, passed to template
// ..
}, ]
[validations: [
function(field_value, record){
return []; /// this should be array with errors or empty if none
},
["validationName", ...] /// this should be one of functions defined in validations collection name or DBRef to it
], ]
},
// ...
}
}
}
snake_case实际上是ActiveSupport中称为String
的{{1}}方法:“AsdAsd”.underscore => “asd_asd”。
那些underscore
定义了可选属性。
一切都很好并按预期工作,直到我遇到验证。 这些验证存储在MongoDB中,使用控制台,我可以这样做:
[]
我可以使用MongoID或MongoMapper从Ruby做同样的事情吗? 或者我应该改变我的做法?
感谢。