Rails 3.2.3アプリでサブディレクトリを設定して、次の場所でAPIリクエストを処理しようとしています。http://example.com/api
私は次のようなディレクトリを作成しました:app/controllers/api/
名前空間付きコントローラーを実装するための標準的な規則に従います。
module Api
class GroupsController < ApplicationController
# RESTful verbs implemented here
end
end
次のような名前空間ルートを設定しました。
namespace :api, defaults: {format: 'json'} do
resources :groups
end
http://example.com/api/groups.json
ただし、次の例外が発生するように要求します。
ActionController::RoutingError (wrong constant name groups):
app/controllers/api/groups_controller.rb:2:in `<module:Api>'
app/controllers/api/groups_controller.rb:1:in `<top (required)>'
ご覧のとおり、ここでの「groups」という名前は小文字であるため、有効ではないようです。しかし、これがどこから来ているのかわかりません。
いくつかの場所で、right-aws gemのバージョンがString#camelizeメソッドを壊し、同様のエラーを引き起こしていることを読みました。ただし、このgemがRailsアプリケーションのスタックに存在しないことを確認しました。
しばらくの間、これに対して頭をぶつけてきました。他の誰かがこの問題にぶつかったことがありますか?
編集:からの貼り付けられた出力$ rake routes
:
root / welcome#index
api_groups GET /api/groups(.:format) api/groups#index {:format=>"json"}
POST /api/groups(.:format) api/groups#create {:format=>"json"}
new_api_group GET /api/groups/new(.:format) api/groups#new {:format=>"json"}
edit_api_group GET /api/groups/:id/edit(.:format) api/groups#edit {:format=>"json"}
api_group GET /api/groups/:id(.:format) api/groups#show {:format=>"json"}
PUT /api/groups/:id(.:format) api/groups#update {:format=>"json"}
DELETE /api/groups/:id(.:format) api/groups#destroy {:format=>"json"}