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​​ で一致する必要があるため、 がある場合はMyApplib/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ファイルに追加する必要があります。

Mount MyApp::API => "/"

ダニエル・ドブロフキンに感謝

于 2012-07-03T14:55:30.947 に答える