2016-07-01 3 views
1

Фон: Я построил API в Rails и клиент в Angular. Мой API подключится к стороннему API и захватит некоторые данные. Эти данные будут представлены как вложенный объект/хэш, который хранится в MongoDB/Mongoid.Как избежать Mongoid (или MongoDB), заменяющего пустые массивы нулем

Когда мои угловые клиенты манипулируют данными и отправляют их в мой API для его сохранения, все пустые массивы внутри вложенного хеша/объекта заменяются null.

Есть ли способ, которым я мог бы избежать этого случая (кроме вручную преобразование всех null сек назад array, но это было бы утомительным и сложным, как я нужно нажать эту обновленные данные в третьей части API также) ?

ответ

1

попробовать

field :your_field, type: Array, default: [] 

или

field :your_field, type: Hash, default: {} 
+0

Да, я в курсе, но я имею в виду поле, которое представляет собой хэш, который имеет вложенные массивы в нем ... и помните, что данные уже есть, я импортировал из другого API, только когда я его обновил, Mongoid заменил пустые массивы, которые уже есть, и заменил его на «null» – WagnerMatosUK

+1

, какая версия rails вы используете ?, если вы используете рельсы 4, просто попробуйте config.action_dispatch.perform_deep_munge = false, вы можете проверить эту ссылку для получения более подробной информации http: //www.amilitalia.i t/github.com/rails/rails/pull/13188.html – Jack

+0

, который, похоже, работал как шарм :) Вы хотите изменить свой ответ, чтобы я мог его принять? – WagnerMatosUK