Ruby on rails 单元化定轨路由

Ruby on rails 单元化定轨路由,ruby-on-rails,ruby,controller,routing,Ruby On Rails,Ruby,Controller,Routing,我有一个rails 4应用程序,其中有一个控制器,如: app/controllers/api/v1/books\u controller.rb: 但我得到了一个错误: uninitialized constant BooksController 试试这个: module Api module V1 class BooksController < ApplicationController ... end end end 模块Api 模块V1 类Bo

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

app/controllers/api/v1/books\u controller.rb:

但我得到了一个错误:

uninitialized constant BooksController
试试这个:

module Api
  module V1
    class BooksController < ApplicationController
      ...
    end
  end
end
模块Api
模块V1
类BooksController
或者这个:

class Api::V1::BooksController < ApplicationController
  ...
end
class Api::V1::BooksController
这两个都适合我

还有一个很好的做法是在类似的环境中使用一些API控制器:

module Api
  class BaseController < ApplicationController
    respond_to :json
  end
end
模块Api
类BaseController<应用程序控制器
回复:json
结束
结束

在api文件夹中。或者它可以位于api版本文件夹中,具有版本名称空间。

module api::V1假定您位于api模块下。。。这不应该是模块API吗;模块V1;结束;结束?在项目目录中,您需要books controller文件位于一个名为v1的目录中,该目录位于一个名为api的目录中,位于应用程序的controllers文件夹中。
class Api::V1::BooksController < ApplicationController
  ...
end
module Api
  class BaseController < ApplicationController
    respond_to :json
  end
end