在rails中使用类型数组字段的问题

时间:2012-10-22 09:20:03

标签: ruby-on-rails ruby yaml

表中可能有一组记录,其中只有两个字段按记录变化,其余字段保持不变。这需要通过表通过外键关联拆分来进行规范化。但是,在Ruby-on-Rails中,它意味着创建一个模型。那么,是否仍然可以减少磁盘空间的使用?

可能是,因为在记录中存储一列的多个值将要求该列是任何类型的数组是合理的。但声明该字段为:数组类型会导致错误。那么,有没有办法解决它?

1 个答案:

答案 0 :(得分:1)

生成模型后,打开模型的文件。为每个字段插入一行。

  

serialize:field_name

但请确保您要序列化的字段应为

类型
  

:文字

  

:字符串

如果它们不是这种原始数据类型,即

之类的其他类型
  

:datetime

然后会返回错误。

此步骤整体上并不完整。您需要执行一个补充步骤:反序列化,因为在模型级存储中,它存储为以“--- \ n-”开头的字符串,这不适用于数组类型的操作。

从模型中读取数据时,需要执行以下步骤:

  

YAML.load(FIELD_NAME)

其中field_name指的是已序列化的字段。

上面的步骤将返回一个数组,您可以在该数组上执行常规数组操作。