命名空间JSONAPI资源和控制器

时间:2016-05-16 04:08:13

标签: ruby-on-rails ruby jsonapi-resources

我正在尝试为我的'类别'添加命名空间。控制器和资源。

所以我做的第一件事就是将categories_controller.rb移至app/controllers/api/v1/categories_controller,将category_resource.rb移至app/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:无法找到资源&#39;类别&#39;。 (未找到类CategoryResource)(NameError)

我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

它不应该在模块中。

答案 1 :(得分: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目录而不是将其视为模块子文件夹?