我的应用程序中有一组外部 API 控制器。一切正常。
其中一个控制器是 groupings_controller.rb。分组是用户和组之间的多对多关系表。
class Api::V1::GroupingsController < ApplicationController
def create
@group = Group.find_by_id(params[:grouping][:group_id])
@grouping.current_user = current_user
@grouping = @group.groupings.build(user_id: current_user.id, group_id: @group.id)
@grouping.user_id = current_user.id
respond_to do |format|
if @grouping.save
format.html { redirect_to @grouping, notice: 'Grouping was successfully created.' }
format.json { render json: @grouping, status: :created, location: @grouping }
else
format.html { render action: "new" }
format.json { render json: @grouping.errors, status: :unprocessable_entity }
end
end
end
但是当我创建分组时
curl -v -H 'Content-Type: application/json' -H 'Accept: application/vnd.app.v1' -X POST http://localhost:3000/api/groupings/\?auth_token\=SH5nwhDSbsomyQCZzb8T -u "admin:secret" -d "{\"grouping\":{\"group_id\":\"1\"}}"
我得到了回应
{"grouping":{"id":52,"user_id":null,"group_id":1}}*
看起来它从非 api 控制器创建分组。如果我从非 api 控制器中删除创建,服务器会抛出错误。
APP::Application.routes.draw do
namespace :api, defaults: { format: 'json' } do
scope module: :v1, constraints: ApiConstraints.new(version: 1, default: true) do
resources :groupings
end
end
resources :groupings
end