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
在 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