2012-04-17 112 views

回答

2

提供了這樣的默認值將保存它的YAML表示作爲字符串進入數據庫,Rails將其反序列化爲字符串。這就是爲什麼它不起作用。

另外,也許你想使用text作爲列類型,以便在數組變長時不會截斷數組。在最近的Rails的語法,這將是:

t.text :roles 

而當你想存儲的新角色進入數據庫,你必須在事後保存對象(相對於has_many協會,自動保存B/C是關鍵是在其他表):

e = Environment.find(1) 
e.roles.push 'thing' 
e.save 

或者,如果這是絕對必須oneliner:

Environment.find(1).tap{|e| e.roles.push 'things'}.save 
+0

非常感謝!不知道那裏的文字是什麼意思,但它工作。我猜所有的序列化對象應該有':text'類型? – gpupu 2012-04-18 08:56:13

+0

是的。雖然我懷疑是否有任何實際限制。只有基於序列化輸出的長度,如果它不適合'string'類型(可能取決於數據庫),它可能會被截斷。 – Laas 2012-04-18 14:27:32