0

我是 MVC 的新手。我正在使用 Padrino 和 MongoMapper 和 Haml 来尝试创建这个应用程序。

我有一个项目数据库,每个项目都有一个与之关联的哈希,称为“参数”。此散列具有一些必需的键,但主要是任意/随机键。一些键具有一组有限的允许值。

例如:

item.params["password"] 没有一组有限的可能值。

item.params["color"] 必须是 %w{red blue green} 之一

为该哈希中的项目创建编辑器的最佳方法是什么?我想要一个用于自由格式值的文本字段和一个用于有限值的菜单。我还希望这些菜单将“新建”作为底部选择,因此我不能只对所有有限值集进行硬编码。

我能想到的最好的办法是在数据库中有一个新的集合(表),它只是一个默认值的哈希。如果您的密钥不在此哈希中,您将获得一个文本框。

似乎必须有更好的方法。

4

1 回答 1

1

您的问题似乎与此非常相似:mongodb 和 mongomapper

我认为您可能希望使用“度量单位”构建“类型”集合......因此您的“类型”集合将包含如下条目:

{"_id" : "password", "display" : "password"}
{"_id" : "user_name", "display" : "text", "restrictions" : ["max_length": 20]}
{"_id" : "eye_color", "display" : ["red","blue","green"], "restrictions" : ["single"]}

所以很明显,渲染这些东西的逻辑都必须在 Ruby 端。但是,在 RDBM 中尝试过这些东西后,这肯定会更容易。

是的,这里的弱点是您最终可能会为每个字段查询一次“类型”集合。因此,如果您要显示 10 个字段,则需要进行 10 个查询。这可能听起来有点蹩脚,但它基本上就是你的 MySQL 数据库正在做的事情。您可能希望为“类型”集合构建一个“缓存”层,因为您可能希望它永久地“在内存中”。

于 2010-06-25T02:31:46.683 回答