J'ai une épine Dorsale modèle dans mon application qui n'est pas un plat typique de l'objet, c'est un grand objet imbriqué et nous stockons les des pièces imbriquées dans les colonnes de TEXTE dans une base de données MySQL.
J'ai voulu traiter le JSON de codage/décodage dans les Rails de l'API, de sorte que de l'extérieur il ressemble, vous pouvez POST/GET ce un grand imbriquée objet JSON, même si certaines parties sont stockées en tant que stringified JSON texte.
Cependant, j'ai couru dans un problème où les Rails comme par magie convertit des tableaux vides à l' nil
valeurs. Par exemple, si je POSTE ce:
{
name: "foo",
surname: "bar",
nested_json: {
complicated: []
}
}
Mon Rails contrôleur voit ceci:
{
:name => "foo",
:surname => "bar",
:nested_json => {
:complicated => nil
}
}
Et donc, mes données JSON a été modifié..
Quelqu'un a rencontré ce problème avant? Pourquoi Rails de modifier mon POST de données?
Mise à JOUR
C'est là où ils le font:
https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/http/request.rb#L288
Et voici ~pourquoi ils le font:
https://github.com/rails/rails/pull/8862
Alors maintenant, la question est de savoir comment gérer cela dans mon imbriquée API JSON situation?