3

我正在尝试在我的 rails 3.2.3 应用程序中运行葡萄宝石。

我正在关注本教程:

http://martinciu.com/2011/01/mounting-grape-api-inside-rails-application.html

但我收到此错误:

cannot load such file -- lib/api

我已经config.autoload_paths += %W(#{config.root}/lib)在我的application.rb文件中添加了。

我也添加require "lib/api"到我的routes.rb文件中

少了什么东西?

4

1 回答 1

3

问题已解决。

如果您是新手,本教程http://martinciu.com/2011/01/mounting-grape-api-inside-rails-application.html会产生误导。

例如,lib 文件夹中的文件名和模块名称应该在 ruby​​ 中匹配,所以如果你有MyApp,它应该在lib/my_app.rb并且它应该在加载路径上。

正确的方法是:

#lib/my_app.rb
module MyApp
  class API < Grape::API
    prefix "api"
    resource "posts" do
      get do
        Post.all
      end
      get ':id' do
        Post.find(params[:id])
      end
    end

  end
end

您必须config/application.rb在下一个自动加载中添加:

config.autoload_paths += %W(#{config.root}/lib)

最后,您必须将其添加到您的routes.rb文件中:

挂载 MyApp::API => "/"

感谢丹尼尔·杜布罗夫金

于 2012-07-03T14:55:30.947 回答