我有一個叫做App.Routine的has_many活動的嵌套資源。當我發的帖子這裏是我的有效載荷:發佈從Ember.js到Rails API的嵌套資源失敗。
{程序:{名稱:測試名,活動內容:[{名稱:測試名},{名稱:測試名}]}}
這將返回500錯誤:
的ActiveRecord :: AssociationTypeMismatch在RoutinesController#創建
活動(#32627220)預計,得到的ActiveSupport :: HashWithIndifferentAccess(#33577656)
我的Rails API是使用ActiveModelSerializers:
class RoutineSerializer < ActiveModel::Serializer
attributes :id, :name
has_many :activities, embed: :ids
end
class RoutinesController < ApplicationController
respond_to :json
def create
routine = Routine.create(params[:routine])
end
我相信我的問題在於我如何處理我的routines_controller.rb中的創建操作。 Rails不喜歡我如何返回例程JSON內的活動的散列,但我無法弄清楚處理這個問題的正確方法。
你有沒有解決這個問題。有類似的問題? – Undistraction 2013-05-12 17:40:49
@Pedr - 可惜沒有。它似乎是Rails不接受我發送的JSON的問題。如果我從App.store中刪除了{embedded:'always'},則會爲具有「parent_id」的子級的父級和子級發送2個單獨的JSON帖子。以這種方式提交我的POST是成功的,但是我只想發送帶有嵌入式父/子對象的1帖子。遵循這個例子[https://github.com/dgeb/ember_data_example](https://github.com/dgeb/ember_data_example),我不知道我在做什麼不同,會導致錯誤。 – kevinml 2013-05-19 18:50:49
恥辱。感謝更新。 – Undistraction 2013-05-19 19:12:28