3

如果这个问题已经得到解答,请原谅我,我已经花了一段时间来解决类似的问题,但似乎没有一个能够实现我想要的。

我有一个名为的模型Contact,它存储了一个联系人的信息。我想添加添加自定义字段的功能。也就是说,用户可以在模型上存储一个keyvalue哪些存储在序列化对象中。因为键是自定义的,所以我不能只使用 attr 编写器来访问值,就好像它们在模型本身上一样。

我尝试将其序列化为哈希,但我的问题是在提交数据时使用表单输入。出于这个原因,我开始使用带有 [{key: 'foo', value: 'bar'}] 的哈希数组,但是在编辑表单时,旧值不会显示出来,我不完全确定最好的方法接近这个。我试图用fields_for :extra_values

4

1 回答 1

4

在模型的序列化字段中存储数据存在一些小问题。save首先,ActiveRecord 总是认为序列化的字段是脏的,因此,无论何时调用,数据库中的记录总是会更新。二是序列化字段中保存的数据难以查找。所以我建议添加另一个模型 ExtraValue 来存储这些值,并制作 Contact has_many :extra_values。然后,您可以利用嵌套表单来构建您的表单。

于 2012-10-24T08:02:26.663 回答