중첩 된 자원 ID 매개 변수

Yousef

중첩 된 리소스 경로를 구축하려고합니다.

먼저 사용자를 생성하고 작업 의지를 생성하고 사용자 카테고리 컨트롤러를 생성하고 항목 컨트롤러를 생성하지만 항목을 생성 할 때 문제가 있습니다.

첫 번째 카테고리 컨트롤러

class  Api::V1::CategoriesController < ApplicationController
  before_action :authenticate_with_token!, only: [:create, :update, :destroy]
  before_action :set_category, only: [:show, :update, :destroy]

  # GET /categories
  def index
    @categories = current_user.category.all

    render json: @categories
  end

  # GET /categories/1
  def show
    render json: @category
  end

  # POST /categories
  def create
    @category = current_user.categories.new(category_params)

    if @category.save
      render json: @category, status: :created
    else
      render json: @category.errors, status: :unprocessable_entity
    end
  end

  # PATCH/PUT /categories/1
  def update
    if @category.update(category_params)
      render json: @category
    else
      render json: @category.errors, status: :unprocessable_entity
    end
  end

  # DELETE /categories/1
  def destroy
    @category.destroy
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_category
      @category = current_user.category.find(params[:id])
    end

    # Only allow a trusted parameter "white list" through.
    def category_params
      params.require(:category).permit(:title)
    end
end


두 번째 항목 컨트롤러

class  Api::V1::ItemsController < ApplicationController
  before_action :authenticate_with_token!, only: [:create, :update, :destroy]
  before_action :set_item, only: [:show, :update, :destroy]

  # GET /items
  def index
    @items = current_type.items.all

    render json: @items
  end

  # GET /items/1
  def show
    render json: @item
  end

  # POST /items
  def create
    @item = current_type.item.new(item_params)

    if @item.save
      render json: @item, status: :created, location: @item
    else
      render json: @item.errors, status: :unprocessable_entity
    end
  end

  # PATCH/PUT /items/1
  def update
    if @item.update(item_params)
      render json: @item
    else
      render json: @item.errors, status: :unprocessable_entity
    end
  end

  # DELETE /items/1
  def destroy
    @item.destroy
    @item.image.purge
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_item
      @item = current_type.item.find(params[:id])
    end

    # Only allow a trusted parameter "white list" through.
    def item_params
      params.require(:item).permit(:title, :price, :image)
    end
end

애플리케이션 컨트롤러

class ApplicationController < ActionController::API
    def current_user
        @current_user ||= User.find_by(auth_token: request.headers['Authorization']) 
      end
        
      def authenticate_with_token!
        render json: { errors: "Not authenticated" },status: :unauthorized unless user_signed_in?
      end
        
      def user_signed_in?
        current_user.present? 
      end
    
      def prepare_user
        @user = User.find(params[:id])
      end
      
      def current_type
        @current_type ||= Type.find(params[:id])
      end


end

내 경로

Rails.application.routes.draw do
  
  devise_for :users
      namespace :api do
        namespace :v1 do
          resources :sessions, :only => [:create, :destroy] 
          resources :users, :only => [:show, :create, :update, :destroy]  do 
            resources :categories do 
              resources :items
            end`
          end
        end
      end
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end

ActiveRecord :: RecordNotFound 항목을 만들려고 할 때 (ID없이 유형을 찾을 수 없음) :

해크 맨

항목을 생성하는 경우 POST request경로에 대한 작업을 수행합니다 ./api/v1/users/:user_id/categories/:category_id/items

따라서 URL은 다음과 같습니다. /api/v1/users/1/categories/1/items

그런 다음받는 매개 변수는 다음 user_id and category_id같습니다 . 찾고있는 매개 변수 ID가 누락되었습니다. 수신 한 매개 변수에 대한 로그를 확인하고 올바른 매개 변수를 선택하도록 코드를 조정해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails-중첩 된 Strong 매개 변수

분류에서Dev

중첩 된 명명 된 매개 변수의 기본값 유지

분류에서Dev

정의 된 매개 변수로 중첩 된 정의 C ++

분류에서Dev

중첩 된 함수를 매개 변수로 전달

분류에서Dev

중첩 매개 변수화 된 클로저 인수 예외

분류에서Dev

Meteor 및 Iron Router에서 중첩 된 속성으로 여러 매개 변수 지원

분류에서Dev

중첩 된 매개 변수 팩 확장 실패

분류에서Dev

중첩 된 기능으로 매개 변수 전달

분류에서Dev

Rails 4-중첩 된 경로 및 양식 매개 변수

분류에서Dev

중첩 된 템플릿 매개 변수에 액세스

분류에서Dev

중첩 된 템플릿 매개 변수에 액세스

분류에서Dev

중첩 된 템플릿 매개 변수 및 유형 추론

분류에서Dev

해시 매개 변수로 제공된 중첩 속성 배열

분류에서Dev

ajax 매개 변수 URL이있는 레일 : 중첩 된 경로

분류에서Dev

중첩 된 omniauth에 대한 강력한 매개 변수

분류에서Dev

중첩 된 매개 변수 세트 만 필요 Rails

분류에서Dev

Rails 4-중첩 된 JSON 매개 변수를 통해 반복

분류에서Dev

중첩 된 JSON 매개 변수가있는 Alamofire Post Request

분류에서Dev

AutoMapper 사용자 지정 형식 변환기 ITypeConverter 및 중첩 된 개체 매핑

분류에서Dev

중첩 된 열거 형에 대한 템플릿 매개 변수로 C ++ 친구 연산자 오버로딩

분류에서Dev

자바 스크립트 : 여러 쿼리 매개 변수가있는 중첩 된 JSON API 요청

분류에서Dev

jQuery는 함수 매개 변수를 중첩 된 함수로 전달합니다.

분류에서Dev

Rails 4 : 강력한 매개 변수 + 중첩 된 속성 + 다중 선택

분류에서Dev

중첩 된 맵을 사용한 가변 템플릿 매개 변수 추론

분류에서Dev

어떻게 중첩 된 매개 변수 매개 변수에 주석을 얻으려면?

분류에서Dev

중첩 된 유형 매개 변수의 유형 매개 변수를 파악하는 방법

분류에서Dev

변환기 매개 변수 다중 바인딩 정적 자원

분류에서Dev

kedro run CLI 명령을 사용하여 중첩 된 매개 변수 재정의

분류에서Dev

http.get의 매개 변수로 중첩 된 객체 보내기

Related 관련 기사

  1. 1

    Rails-중첩 된 Strong 매개 변수

  2. 2

    중첩 된 명명 된 매개 변수의 기본값 유지

  3. 3

    정의 된 매개 변수로 중첩 된 정의 C ++

  4. 4

    중첩 된 함수를 매개 변수로 전달

  5. 5

    중첩 매개 변수화 된 클로저 인수 예외

  6. 6

    Meteor 및 Iron Router에서 중첩 된 속성으로 여러 매개 변수 지원

  7. 7

    중첩 된 매개 변수 팩 확장 실패

  8. 8

    중첩 된 기능으로 매개 변수 전달

  9. 9

    Rails 4-중첩 된 경로 및 양식 매개 변수

  10. 10

    중첩 된 템플릿 매개 변수에 액세스

  11. 11

    중첩 된 템플릿 매개 변수에 액세스

  12. 12

    중첩 된 템플릿 매개 변수 및 유형 추론

  13. 13

    해시 매개 변수로 제공된 중첩 속성 배열

  14. 14

    ajax 매개 변수 URL이있는 레일 : 중첩 된 경로

  15. 15

    중첩 된 omniauth에 대한 강력한 매개 변수

  16. 16

    중첩 된 매개 변수 세트 만 필요 Rails

  17. 17

    Rails 4-중첩 된 JSON 매개 변수를 통해 반복

  18. 18

    중첩 된 JSON 매개 변수가있는 Alamofire Post Request

  19. 19

    AutoMapper 사용자 지정 형식 변환기 ITypeConverter 및 중첩 된 개체 매핑

  20. 20

    중첩 된 열거 형에 대한 템플릿 매개 변수로 C ++ 친구 연산자 오버로딩

  21. 21

    자바 스크립트 : 여러 쿼리 매개 변수가있는 중첩 된 JSON API 요청

  22. 22

    jQuery는 함수 매개 변수를 중첩 된 함수로 전달합니다.

  23. 23

    Rails 4 : 강력한 매개 변수 + 중첩 된 속성 + 다중 선택

  24. 24

    중첩 된 맵을 사용한 가변 템플릿 매개 변수 추론

  25. 25

    어떻게 중첩 된 매개 변수 매개 변수에 주석을 얻으려면?

  26. 26

    중첩 된 유형 매개 변수의 유형 매개 변수를 파악하는 방법

  27. 27

    변환기 매개 변수 다중 바인딩 정적 자원

  28. 28

    kedro run CLI 명령을 사용하여 중첩 된 매개 변수 재정의

  29. 29

    http.get의 매개 변수로 중첩 된 객체 보내기

뜨겁다태그

보관