不使用Rails中的Grape API gem来理解嵌套资源

den*_*icz 3 ruby-on-rails ruby-grape grape-api

这是我的API的样子:

module ServiceRequests
  class API < Grape::API
    version 'v1', using: :path
    format :json

    namespace :companies do
      params do
        requires :company_id, type: Integer, desc: "A Company Id"
      end

      resource :service_requests do
        get :all do
          Company.find(params[:company_id]).service_requests
        end
      end
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

我试图像这样打电话:http://localhost/v1/companies/:company_id/service_requests/all但是当我打这个电话时,我收到了错误No route matches [GET] "/v1/companies/1/service_requests/all"

工作守则:

module ServiceRequests
  class API < Grape::API
    version 'v1', using: :path
    format :json

    resource :companies do

      params do
        requires :company_id, type: Integer, desc: "A Company Id"
      end

      route_param :company_id do
        resource :service_requests do
          get do
            Company.find(params[:company_id]).service_requests
          end
        end
      end

    end

  end
end
Run Code Online (Sandbox Code Playgroud)

Ada*_*dam 5

你试过这样做吗?

namespace 'companies/:company_id' do
  resource :service_requests do
    get :all do
      Company.find(params[:company_id]).service_requests
    end
  end
end
Run Code Online (Sandbox Code Playgroud)