2011-09-05 32 views
2

在我的模型Post.rb我有serialize :facts调用。 我试图完成的是用户可以将他们自己的键/值对保存到facts列。当用户打开/张贴/新页面时,我希望有三个空的键值输入。然后用户可以填写像值:如何使用哈希数组使用ActiveRecord的序列化?

[color    ]: [very blue  ] 
[length of the street ]: [not that long ] 
[etcetera    ]: [etcetera  ] 

要建立我使用简单形式的宝石,并试图已经使用

= f.simple_fields_for :facts do |ff| 
    = f.input :key 
    = f.input :value 

只生成一个键/值的形式,并将其保存非常好以'事实'字段的YAML格式!但是,当我尝试添加数组时,它不起作用。它只保存最后一个键/值对。

那么,我知道什么问题,但不知道如何解决它。

我需要一些可以生成输入字段的值,例如:post[facts][][key]post[facts][][value]。目前它只能生成三个输入的post[facts][key]post[facts][value]输入。

+0

你解决了这个问题吗? –

+0

@RuanCarlos大概我解决了它,但我真的不记得如何。这已经是三年前了:)你可以尝试在模型中编写一个自定义串行器。这个串行器可以执行诸如解析所有“密钥”字段来散列密钥和所有“值”字段以对与密钥对应的散列值进行操作。 – Ivan

+0

谢谢伊万。我手动创建了表单。 –

回答

0

您是否试图合并空对与集合中的现有元素?