В соответствии с документацией Rails 5 пустой массив должен быть сериализован в NULL:
Пустые объекты как {}, в случае Hash или [], вслучай массива всегда будет сохраняться как ноль.
Возможно, я ошибся, но мой пустой массив всегда сериализуется как --- [] (YAML) или [] (JSON) вбаза данных.Кроме того, сериализация работает нормально и, как и ожидалось.
Я спрашиваю, потому что мы в настоящее время запускаем Rails 4, но мы можем захотеть перейти на Rails 5. Но тогда поведение изменится с [] на 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: [])
Любойидеи?