以下是Rails项目的app contorller目录
对rails进行自学,但是根据我的理解,如果我在app文件夹中创建一个目录,那么我必须完成路由文件,并匹配以下路由:
match "/editor/usynkdataeditor/saveusynkeditor"
,
社区的问题是有更好的方法可以为特定工作流定义不同的目录结构,或者可以安全地定义父控制器目录中的所有控制器。
答案 0 :(得分:8)
如果在controllers目录中创建其他目录,则实际上是命名空间控制器。
所以这个控制器将是:
class Editor::UsynkdataeditorController < ApplicationController
def saveusynkeditor
end
end
就路线定义而言,您可以执行以下操作:
MyApplication::Application.routes.draw do
namespace :editor do
get "usynkdataeditor/saveusynkeditor"
end
end
Whish会给你路线:
$ rake routes
editor_usynkdataeditor_saveusynkeditor GET /editor/usynkdataeditor/saveusynkeditor(.:format) editor/usynkdataeditor#saveusynkeditor
或者,最好只使用宁静的路线而不是像这样的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
您在rails指南中尝试实现的内容有一个非常好的解释http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing。
最后,回答你的问题:
答案 1 :(得分:1)
这属于Namespacing,它通常被认为是做你想做的事情的最佳方法。看看吧。