根据Rails 5 documentation,应将一个空数组序列化为NULL:
如果是Hash,则为{}的空对象,如果是Array,则为[]的空对象将始终保留为null。
也许我弄错了,但是我的空数组在数据库中始终序列化为--- [](YAML)或[](JSON)。除此之外,序列化还可以正常工作,并且符合预期。
我在问,因为我们当前正在运行Rails 4,但是我们可能想切换到Rails5。但是随后行为将从[]更改为NULL(因为在Rails 4文档中缺少上面的句子)。因此,我想到了为自己的Rails 4编写序列化程序,该序列化程序也使用NULL而不是[],但是看起来好像没有必要。
出于完整性考虑:
class TestModel < ActiveRecord::Base
serialize :test_attribute, JSON #doesn't matter if it's JSON, Hash or YAML
end
TestModel.create(test_attribute: [])
有什么想法吗?