我有我的模型上的數組和設置,並且當我將數組寫入到我的記錄時,它表示COMMIT爲true,但在檢查該記錄後立即檢查字段返回一個空數組。Rails無法寫入到數據庫中的序列化數組字段
型號:
class Feature < ActiveRecord::Base
serialize :content, Array
attr_accessible :content
end
遷移:
class AddContentToFeatures < ActiveRecord::Migration
def change
add_column :features, :content, :text, array: true, default: []
end
end
我試了一下,用各種符號和字符串語法一起,是這樣的:
> f=Feature.new
> f.content_will_change! #i feel like i shouldn't have to do this
> f.content = ['sadasd','asdasd']
> f.save!
BEGIN
COMMIT
=> true
> f.content
=> []
如何堅持數組在模型上?
我一直序列化數組沒有問題,但數據庫只是假定一個文本字段,只不過是。我會'rake db:rollback',然後刪除'array:true,default:[]',然後再次遷移。 @peterkim的建議對我來說很有意義。 – SteveTurczyn
@SteveTurczyn但PostgreSQL理解SQL數組,所以在PostgreSQL中使用'serialize' kludge有點討厭。 –
對不起,我忽略了'postgresql'標記。要麼答案有效,但@muistooshort的答案是最好的答案。 – SteveTurczyn