私は次の協会を持っています:
キャンペーンhas_many の旅行
旅行の属しているキャンペーン
旅行has_manyイベント
イベントの属している旅行
私の API では、次のような URL の POST リクエストを受け入れます。
/campaigns/1/trips
JSON が渡される場所。JSON は次のようになります。
{"trip":{"red":3, "blue":400, "events_attributes":[{"distance":300}, {"distance":400}]}}
イベント コントローラーの #create アクションは次のようになります。
def create
begin
@campaign = @user.campaigns.find(params[:campaign_id])
@trip = @campaign.trips.create(params[:trip])
render json: @trip, :status => :ok
rescue
render json: '', :status => :not_found
end
end
私の旅行モデルでは、次の行を追加しました。
accepts_nested_attributes_for :events
そのため、対応するイベントでトリップが作成されることを期待していましたが、代わりに 401 not found が返されます。events_attributes を渡さない場合、旅行は正しく作成されます。
この質問に従って、この解決策を考え出しました: Rails での JSON を使用した入れ子になったオブジェクトの作成
私が間違っていることについて何か考えはありますか?