1

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 ルーチン内でアクティビティのハッシュを返す方法を好まないのですが、これを処理する正しい方法がわかりません。

4

1 に答える 1