rails app文件夹目录结构
这是Rails项目的app contorller目录
为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指南中实现的目标。
最后,回答你的问题:
- 更好的方法? 嗯,这取决于你的喜好。 您如何组织代码? 您可以使用命名空间,但不必使用。 然而,
- 同时在父控制器目录中拥有所有控制器没有任何问题。
这属于命名空间 ,它通常被认为是做你想做的事情的最佳方法。 看看这个。