has_many アクティビティを持つ App.Routine というネストされたリソースがあります。投稿を送信すると、ペイロードは次のようになります。
{ルーチン: {name:testName,activities:[{name:testName},{name:testName}]}}
これは 500 エラーを返します。
ActiveRecord::RoutinesController#create の AssociationTypeMismatch
アクティビティ (#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 ルーチン内でアクティビティのハッシュを返す方法を好まないのですが、これを処理する正しい方法がわかりません。