未初始化的常量路由路由

时间:2014-06-21 23:53:02

标签: ruby-on-rails ruby controller routing

我有一个rails 4应用程序,我有一个控制器,如:

应用程序/控制器/ API / V1 / books_controller.rb

module Api::V1
  class BooksController < ApplicationController
    ...
  end
end

然后我的routes.rb:

namespace :api, defaults: {format: 'json'} do
  namespace :v1 do
    resources :books
  end
end

但我收到了错误:

uninitialized constant BooksController

1 个答案:

答案 0 :(得分:1)

试试这个:

module Api
  module V1
    class BooksController < ApplicationController
      ...
    end
  end
end

或者这个:

class Api::V1::BooksController < ApplicationController
  ...
end

两者都适合我。

还有一个很好的做法是使用一些API控制器:

module Api
  class BaseController < ApplicationController
    respond_to :json
  end
end

在api文件夹中。或者它可以在带有版本名称空间的api版本文件夹中。