railsでgrapeを使用した場合” Unable to autoload constant API,〜(LoadError)”というエラー
ruby初心者です。 初歩的な質問失礼します。
この記事(http://blog.dakatsuka.jp/2011/05/27/grape.html)を参考にrailsにgrapeをいれてAPIを作成しようとしてますが、
/Users/masah/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0/gems/activesupport-4.1.6/lib/active_support/dependencies.rb:481:in `load_missing_constant': Unable to autoload constant API, expected /Users/masah/cospic/lib/api.rb to define it (LoadError)
というエラーが出てきてしまいました。
どのように対処すればいいでしょうか。
lib/api.rb
module Cospic
class API < Grape::API
# APIアクセスに接頭辞を付加
# ex) http://localhost:3000/api
prefix "api"
# APIアクセスにバージョン情報を付加
# ex) http://localhost:3000/api/v1
version 'v1', :using => :path
resource "users" do
# ex) http://localhost:3000/api/v1/users
desc "returns all users"
get do
User.all
end
# ex) OK: http://localhost:3000/api/v1/users/1
# ex) NG: http://localhost:3000/api/v1/users/a
desc "return a user"
params do
requires :id, type: Integer
end
get ':id' do
User.find(params[:id])
end
end
end
end
config/routes.rb
Rails.application.routes.draw do
resources :layers
resources :posts
resources :users
resources :posts do
collection do
get 'tag'
end
end
root 'posts#index'
get '/auth/:provider/callback' => 'sessions#create'
get '/logout' => 'sessions#destroy' , :as => :logout
resource :user, only: :destroy do
get 'retire'
end
resources :posts,except: :index do
#resources :posts,except: :index do
resources :likes, only: [:new, :create, :destroy]
#collection do
# get 'tag/:tag_name'
#end
end
#match '*path' => 'application#error404', via: :all
match ':controller(/:action(/:id))', via: [ :get, :post, :patch ]
end
mount Cospic::API => "/"
config/application
require File.expand_path('../boot', __FILE__)
require 'rails/all'
module Cospic
class Application < Rails::Application
config.generators do |g|
g.orm :active_record
end
config.i18n.default_locale = :ja
config.autoload_paths += %W(#{config.root}/lib)
end
end
よろしくお願いします。