在模型中存储键值序列化额外字段(Rails)

时间:2012-10-23 13:02:24

标签: ruby-on-rails forms

请原谅我,如果这已经得到回答,我花了一些时间经历类似的问题,但没有一个看起来能达到我想要的目的。

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

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

来实现这一目标

1 个答案:

答案 0 :(得分:4)

在模型中的序列化字段中存储数据存在一些小问题。首先,ActiveRecord始终将序列化字段视为脏,因此,每当调用save时,数据库中的记录将始终更新。其次,很难搜索保存在序列化字段中的数据。因此,我建议添加另一个模型ExtraValue来存储这些值,并建立联系人has_many :extra_values。然后,您可以利用嵌套表单来构建表单。