JSON APIとHTMLベースのwebアプリ両方を含んだrails4アプリを作ろうとしています。
/api以下に来たリクエストに関してはパフォーマンスの最適化ためrails_apiで使用される最低限のミドルウェアを介してレスポンスを返し、それ以外のリクエストに関してはデフォルトのRailsのミドルウェアセットを介して処理をさせていと考えています。

現状、
- rails_api gemを追加
- routes.rbにてapiをnamespaceで分ける
- apiのコントローラに関してはActionController::APIを継承させる
- HTMLベースのコントローラに関してはActionController::Base を継承させる

という方針で進めています。以下、主な部分のコードです。

app/controllers/base_api_controller.rb

class BaseApiController < ActionController::API
    ...
end

app/controllers/api/projects_controller.rb

module Api
  class ProjectsController < BaseApiController
    def index
      ..
    end
  end
end

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
  ..
end

app/controllers/projects_controller.rb

class ProjectsController < ApplicationController
  def index
    ..
  end
end

config/routes.rb

namespace :api do
  resource :projects
end

resource :projects

config/application.rb

config.autoload_paths += %W(
  #{config.root}/app/controllers/api
)

この状態で/api/projectsにリクエストをなげるとうまく/app/controllers/projects_controller.rbが処理してくれるのですが, /projectsにアクセスすると/app/controllers/projects_controller.rbに処理して欲しいところ、以下のエラーが表示されます。

Unable to autoload constant ProjectsController, 
expected /app/controllers/api/projects_controller.rb to define it. 

どのようにすれば正しく動くように修正できますでしょうか。
もしくは、そもそもこの実装方針自体おかしいようでしたら代案を教えていただけますと幸いです。