rails app文件夹目录结构

这是Rails项目的app contorller目录

** app控制器目录**

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

match "/editor/usynkdataeditor/saveusynkeditor"

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

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

所以这个控制器将是:

 class Editor::UsynkdataeditorController < ApplicationController def saveusynkeditor end end 

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

 MyApplication::Application.routes.draw do namespace :editor do get "usynkdataeditor/saveusynkeditor" end end 

威什会给你路线:

 $ rake routes editor_usynkdataeditor_saveusynkeditor GET /editor/usynkdataeditor/saveusynkeditor(.:format) editor/usynkdataeditor#saveusynkeditor 

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

 MyApplication::Application.routes.draw do namespace :editor do resources :usynkdataeditor do collection do get :saveusynkeditor end end end end 

当你得到:

 $ 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 

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

最后,回答你的问题:

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

这属于命名空间 ,它通常被认为是做你想做的事情的最佳方法。 看看这个。