0

私はバニラ レール 4 アプリケーションを持っていて、バージョン管理された Grape API を追加しようとしています。Rails サーバーは正常に起動しますが、API URL ( http://localhost:3000/v1/user/ping) にアクセスしようとすると、次のエラーが表示されます。

undefined method `call' for V1:Module

これまでのところ、セットアップした API は非常にシンプルですが、なぜ機能しないのかわかりません

ルート/アプリ/api/api.rb:

# root/app/api/api.rb
class API < Grape::API
  mount V1
end

バージョン フォルダー内に、API のバージョンがサポートするすべてのクラスを配置したいと考えています: root/app/api/v1/user.rb:

# root/app/api/v1/user.rb
module V1
  class user < Grape::API
    get :ping do
      { :ping => params[:pong] || 'pong' }
    end
  end
end

ルート/構成/ルート:

TestApp::Application.routes.draw do
  mount API => '/'
end
4

1 に答える 1

3

API をフォルダーに分割します。

v1/resources/users.rb
v1/resources/orders.rb
v1/entities/order.rb
v2/resources/orders.rb

そして api.rb で個々のファイルをマウントするだけです...

mount V1::Resources::Users
mount V1::Resources::Orders
mount V2::Resources::Orders

その後:

version ['v2','v1'], cascade: true
version 'v2', cascade: true
于 2013-10-12T23:43:40.457 に答える