J'ai mis en place un Ember Twiddle simple pour vous montrer mon erreur qui se produit en essayant de mettre à jour un modèle. Il est important que j'utilise ember-cli-mirage
pour se moquer des données. Selon les docs, j'ai créé une route sténographique qui devrait gérer la requête PUT. Il fait, mais avec l'erreur: Your handler for the url /api/shops/1 threw an error: Cannot convert undefined or null to object
Vous ne pouvez pas utiliser des gestionnaires d'itinéraire raccourcis si RestSerializer est utilisé? (ember-cli-mirage)
Lorsque vous utilisez le JSONAPISerializer, tout fonctionne avec sténographies (mirage/config.js
) et je suis en mesure de mettre à jour les modèles, mais dans mon cas, je dois utiliser le RESTSerializer
avec ID sérialisés dans les réponses. La charge utile de demande quand j'envoie attrs
de modèle sont sans Id
à la fin du nom de la propriété, fe:
// attrs object in PUT request { name: "Shop 1", city: "1" // belongsTo relationship, }
maintenant Mirage tente de trouver ces propriétés sur le modèle de base de données respectif qui doit être mis à jour, mais ne peut pas le trouver, parce que dans la base de données, il est cityId
et pas seulement city
...
J'ai aussi trouvé ce issue report et cela fonctionne, mais j'espérais que je pouvais éviter quelque chose comme ça. Aussi loin que je me souvienne, dans les versions précédentes de ember-cli-mirage (v0.1.x), il n'était pas nécessaire de surcharger la méthode normalize dans le sérialiseur pour pouvoir utiliser RestSerializer avec serializedIds ...
Ma question est: Existe-t-il un moyen de coller uniquement aux gestionnaires de routines, ou dois-je vraiment écrire une aide ou une autre solution personnalisée uniquement parce que je dois utiliser RestSerializer? Ce serait vraiment triste, mais au moins je le saurais alors.
Nous vous remercions de votre soutien!
Je ne connais pas la réponse, mais vous voudrez peut-être noter la version de mirage que vous voulez utiliser. – AlexMA
Je veux utiliser une version qui contient le support pour les usines et la détection automatique de modèle. Mais quand j'ai essayé la première version qui contenait ces deux caractéristiques, elle se comportait aussi comme je l'ai décrit ci-dessus. –