我設置了一個簡單的Ember Twiddle向您展示我嘗試更新模型時發生的錯誤。 我使用ember-cli-mirage
來模擬數據是相當可觀的。 根據文檔,我創建了一個應該處理PUT請求的速記路由。 確實如此,但與錯誤:Your handler for the url /api/shops/1 threw an error: Cannot convert undefined or null to object
如果使用RestSerializer,不可能使用速記路由處理程序? (ember-cli-mirage)
當使用JSONAPISerializer,一切工作以速記(mirage/config.js
),我能夠把款式更新,但在我的情況下,我必須使用RESTSerializer
與序列化的ID答覆。 當我送模型的attrs
是沒有Id
在屬性名的末尾,FE請求負載:
// attrs object in PUT request { name: "Shop 1", city: "1" // belongsTo relationship, }
現在幻影正在試圖尋找到具有相應的數據庫模型的屬性更新,但無法找到它,因爲在數據庫中它是cityId
而不僅僅是city
...
我也發現這個issue report,它的工作,但我希望我可以避免這樣的事情。據我記得,在以前版本的ember-cli-mirage(v0.1.x)中,也不需要重寫序列化程序中的標準化方法,以便能夠使用具有serializedIds的RestSerializer ...
我的問題是: 有沒有一種方法來堅持速記路由處理程序,還是我真的必須編寫一個助手或其他自定義解決方案,因爲我必須使用RestSerializer? 這真的很傷心,但至少我會知道的。
感謝您的支持!
我不知道答案,但你可能想要注意你想使用的海市蜃樓的版本。 – AlexMA
我想使用包含工廠支持和自動模型檢測的版本。但是,當我嘗試包含這兩個功能的第一個版本時,它的行爲也與我上面描述的類似。 –