2012-10-23 23 views
3

原諒我,如果這已被回答,我花了一段時間去經歷類似的問題,但沒有一個看起來能夠實現我正在尋找的東西。在模型中存儲鍵值序列化的額外字段(Rails)

我有一個名爲Contact的模型,它存儲.. contact的信息。我想添加添加自定義字段的功能。也就是說,用戶可以存儲存儲在模型上的序列化對象中的keyvalue。因爲密鑰是自定義的,所以我不能只使用attr編寫器來訪問這些值,就好像它們在模型本身上一樣。

我試圖序列化這個哈希,但我的問題是在提交數據時使用表單輸入。出於這個原因,我開始使用[{key:'foo',value:'bar'}]的哈希數組,但是在編輯表單時,舊的值不會顯示出來,我不完全確定最佳方式來解決這個問題。我試圖通過fields_for :extra_values

+0

你能顯示聯繫表嗎?用戶如何能夠輸入鍵/值對? –

+0

我建議添加另一個模型ExtraValue來存儲這些值,並使Contact'has_many:extra_values'。 – Yanhao

+0

@TomL他們現在不正確,那就是問題所在。我可以用JavaScript來破解它,但這並不是我想要的。 –

回答

4

將數據存儲在模型中的序列化字段中存在一些小問題。首先,ActiveRecord始終將序列化字段視爲髒,結果,只要調用save,數據庫中的記錄就會始終更新。其次,很難搜索保存在序列化字段中的數據。所以我建議添加另一個模型ExtraValue來存儲這些值,並使Contact has_many :extra_values。然後,您可以利用嵌套表單來構建表單。

相關問題