rails app文件夹目录结构

sat*_*son 4 directory-structure ruby-on-rails ruby-on-rails-3

这是Rails项目的app contorller目录

**app控制器目录**

为rails做自学,但是根据我的理解,如果我在app文件夹中创建一个目录,那么我必须完成路由文件,其匹配路线如下:

match "/editor/usynkdataeditor/saveusynkeditor",

对社区的问题是有更好的方法可以为特定工作流定义不同的目录结构,或者可以安全地定义父控制器目录中的所有控制器.

Kru*_*ule 9

如果在controllers目录中创建其他目录,则实际上是命名空间控制器.

所以这个控制器将是:

class Editor::UsynkdataeditorController < ApplicationController
  def saveusynkeditor
  end
end
Run Code Online (Sandbox Code Playgroud)

就路由定义而言,您可以执行以下操作:

MyApplication::Application.routes.draw do

  namespace :editor do
    get "usynkdataeditor/saveusynkeditor"
  end

end
Run Code Online (Sandbox Code Playgroud)

Whish会给你路线:

$ rake routes
editor_usynkdataeditor_saveusynkeditor GET /editor/usynkdataeditor/saveusynkeditor(.:format) editor/usynkdataeditor#saveusynkeditor
Run Code Online (Sandbox Code Playgroud)

或者,最好只使用restful路由而不是saveusynkeditor,如下所示:

MyApplication::Application.routes.draw do

  namespace :editor do
    resources :usynkdataeditor do
      collection do
        get :saveusynkeditor
      end
    end
  end

end
Run Code Online (Sandbox Code Playgroud)

当你得到:

$ rake routes
saveusynkeditor_editor_usynkdataeditor_index GET    /editor/usynkdataeditor/saveusynkeditor(.:format) editor/usynkdataeditor#saveusynkeditor
                editor_usynkdataeditor_index GET    /editor/usynkdataeditor(.:format)                 editor/usynkdataeditor#index
                                             POST   /editor/usynkdataeditor(.:format)                 editor/usynkdataeditor#create
                  new_editor_usynkdataeditor GET    /editor/usynkdataeditor/new(.:format)             editor/usynkdataeditor#new
                 edit_editor_usynkdataeditor GET    /editor/usynkdataeditor/:id/edit(.:format)        editor/usynkdataeditor#edit
                      editor_usynkdataeditor GET    /editor/usynkdataeditor/:id(.:format)             editor/usynkdataeditor#show
                                             PUT    /editor/usynkdataeditor/:id(.:format)             editor/usynkdataeditor#update
                                             DELETE /editor/usynkdataeditor/:id(.:format)             editor/usynkdataeditor#destroy
Run Code Online (Sandbox Code Playgroud)

有一个非常好的解释http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing你想要在rails指南中实现的目标.

最后,回答你的问题:

  1. 更好的方法?嗯,这取决于你的喜好.你觉得你的代码组织得怎么样?您可以使用命名空间但不必使用.然而,
  2. 同时在父控制器目录中拥有所有控制器没有任何问题.