Rails,葡萄实体抛出:未初始化常量Grape::Entity

Rails, Grape entity throws: uninitialized constant Grape::Entity

在 rails 项目中,我创建了 api 文件夹并将此代码添加到我的 application.rb 文件中:

config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]

在我的 api 文件夹中,我创建了 game_server.rb 文件:

module GameServer

  module Entities
   class Test < Grape::Entity
     expose :id
   end
  end


class API < Grape::API
   version 'v1', using: :path
   prefix :api
   format :json

   get :details do
      present Basis.all, with: GameServer::Entities::Test
   end

 end
end

GameServer 模块中的所有代码。当我在浏览器中点击 http://localhost:3000/api/v1/details 时,出现了这个错误: uninitialized constant Grape::Entity

我什至尝试将我的 Entities 模块放在其他文件中,仍然不起作用。

为什么?

您使用的是旧版本的 grape,请更改您的 grape 版本:

gem 'grape', '~> 0.11.0'

你可以参考这个仓库:https://github.com/philcallister/rails-grape-entity

只需添加

gem 'grape'

gem 'grape-entity'

进入你的Gemfile