RoR,我该如何建模?

4
我之前问过这个问题,但我表述得很模糊,很多人建议我既然刚开始学习Ruby和RoR,最好先专注于"Hello, World!"。我感谢这些诚实的回答,但这是我的项目的一部分,所以我必须完成它。而且我想做得对,这样以后就会少些问题。
我要做的是这样的:
我正在制作一个Web应用程序,基本上允许用户创建一个表格。他们给表格命名并添加多个列(字段)。然后他们添加条目(行),就像典型的表格一样。
例如,用户可以创建一个名为"高分"的表格。然后添加字段"姓名"、"分数"、"成就"。这3个将成为列。然后他们可以添加一个条目,例如"约翰"、"123"、"黄金"。
如何使用Active-Records Base子类对此进行建模?从我到目前为止从教程中学到的内容来看,模型具有预定的字段。现在,我有动态字段。
谢谢您的帮助。

我没有尝试过,但你应该能够使用ActiveRecord轻松地创建表添加列。至于模型是否具有预定字段-那不是很准确。ActiveRecord从数据库表本身确定字段名称-在这个意义上它们是“预定”的。此外,当您更改模式时,您可能需要重新加载模型/其他.rb文件。 - Zabba
这可能会对你有所帮助:http://stackoverflow.com/questions/5095567/creating-a-model-within-a-model-in-rails - Mithun Sasidharan
1
对于这样的数据模型,最好使用MongoDb而不是SQL。 - Sławosz
知道您打算如何使用这些用户创建的数据会很有帮助。根据您提供的示例,我建议使用像Redis这样的键值存储,但是如果不知道您打算如何使用它,很难做出准确的判断。 - cvshepherd
1个回答

1
这取决于您的要求。如果这不是您的应用程序的特定目标,那么您不应该为每个用户创建新表。如果您只想让用户在网页上输入数据,则可以将一个“表”模型化为四个表:一个用于TableName、一个用于ColumnName、一个用于每个TableEntry和一个用于TableEntry中的每个列,称为EntryValue
为此创建视图会有些棘手,但这是可能的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接