2

我正在尝试将命名空间添加到我的“类别”控制器和资源中。

所以我做的第一件事就是移动categories_controller.rbtoapp/controllers/api/v1/categories_controllercategory_resource.rbtoapp/resources/api/v1/

然后我将这些工件重新声明如下:

控制器

module Api
  module V1
    class CategoriesController < ApplicationController
      #before_action :doorkeeper_authorize!
    end
  end
end

资源

module Api
  module V1
    class CategoryResource < JSONAPI::Resource
      attribute :name
    end
  end
end

routes.rb我将类别路线移至

namespace :api do
  namespace :v1 do
    jsonapi_resources :categories
  end
end

我已经有不同的错误试图解决这个问题。对于当前配置,这是我得到的错误:

JSONAPI:找不到资源“类别”。(找不到类 CategoryResource)(NameError)

我究竟做错了什么?

4

2 回答 2

0

根据此处的文档 ( https://github.com/cerebris/jsonapi-resources ),您不应移动资源。

它不应该在模块中。

于 2016-05-16T05:44:26.077 回答
0

您的代码看起来不错 - 我与 jsonapi-resources 0.7.0 有类似的东西:

class Api::V1::UsersController
...
class Api::V1::UserResource < BaseResource
...
namespace :api do
namespace :v1 do
  jsonapi_resources :users do
    jsonapi_relationships
  end

您的 Rails 加载路径是否有可能尝试api/v1直接加载目录而不是将其视为模块子文件夹?

于 2016-08-09T00:08:41.700 回答