我正在尝试实现api版本控制,几乎和我在这里做过一样。但是,在rails应用程序中,我似乎没有得到正确的模块/文件夹结构,因为我得到了像V1 is not a module /app/api/v1/xml_responses/device.rb:3:in '<module:API>'目录结构这样的错误消息
/app
/api
- api.rb
/v1
-base.rb
/xml_responces
- device.rbapi.rb
require 'v1/base.rb'
module API
class Base < Grape::API
mount API::V1 => '/v1/'
end
endv1/base.rb
module API
module V1
class ApiV1 < Grape::API
require 'builder'
helpers DeviceMethods
prefix 'api'
version 'v1', using: :header
end
end
endV1/xml_responses/device.rb
module API
module V1
module XMLResponses::Device
def self.do_something
#do_something
end
end
end
endRoutes.rb
mount API::Base => '/'我不知道我做错了什么!你能帮帮我吗?
发布于 2014-05-07 19:22:29
我也遇到了类似的问题,但后来偶然发现了这个伟大的帖子,它帮助我完成了工作,获得了比在其他地方更完整的信息。请参阅http://funonrails.com/2014/03/building-restful-api-using-grape-in-rails/
看看你的代码,这看起来很有趣:
module XMLResponses::Device
def self.do_something你是想做这种事吗?
module API
module V1
module XMLResponses
class Device < Grape::API
resource :device do
get do { Device.all } # Or whatever
end
end
end
end
end发布于 2013-12-13 12:42:06
确保在application.rb中有这一行
config.paths.add "app/api", glob: "**/*.rb"
config.autoload_paths += Dir["#{Rails.root}/app/api/*"]如葡萄wiki 这里。所建议的那样
https://stackoverflow.com/questions/20550056
复制相似问题