简体   繁体   English

ruby on rails,多对多json API

[英]ruby on rails, many-to-many json api

I have set of external API controllers in my app. 我的应用程序中有一组外部API控制器。 All works fine. 一切正常。

One of the controllers is groupings_controller.rb. 控制器之一是groupings_controller.rb。 Grouping is a many-to-many relationship table between users and groups. 分组是用户和组之间的多对多关系表。

  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

however when I create grouping 但是当我创建分组时

 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\"}}"

i got response 我得到了回应

 {"grouping":{"id":52,"user_id":null,"group_id":1}}*

Looks like it creates grouping from non-api controller. 看起来它是从非API控制器创建分组的。 If I delete create from non-api controller, server throws error. 如果我从非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

Ok , i am not attentive enough. 好的,我不够专心。 my api controller was named gropuings_controller.rb instead of groupings_controller.rb . 我的api控制器名为gropuings_controller.rb而不是groupings_controller.rb Should always check this! 应该经常检查一下!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM