Rails Api模块结构

时间:2015-12-22 15:07:09

标签: ruby-on-rails api project-structure

我正在尝试为我的Rails api创建一个模块结构。

1。结构

这是我试图追求的结构:

/app
  | api/
    | v1/
      | comp1/
        | controller/
        | model/
        | serializer/
      | comp2/
        | --- analogous to /comp1
    | v2/
      | comp1/
        | controller/
        | model/
        | serializer/
      | comp2/
        | --- analogous to /comp1

我该如何有效地做到这一点?

我觉得这应该是这样的:

基本控制器(app / api / v1):

class Api::V1::ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
end

继承基本控制器的组件(app / api / v1 / menu / controller):

class Api::V1::Menu::Controller::MenuController < ApplicationController
    def options
        render json: MenuOption.all, each_serializer: Serializer::MenuOptionSerializer
    end
end

2。路由

这或多或少是这样做的吗?

scope module: 'api' do
  scope module: 'v1' do
    scope module: 'menu' do  
      get 'menu' => 'menu#options'
    end
  end
end

我问这个问题的原因是因为我曾经有类似的结构运行,但经过一段时间的铁路后,我无法为新项目做这项工作。另外,我想确保我完全理解这里发生了什么。

0 个答案:

没有答案