我有一个用于我的Rails应用程序的管理控制器,但它变得越来越笨重。这是一个示例:
get '/administration/events', :controller => :administration, :action => :event_index
get '/administration/events/new', :controller => :administration, :action => :event_new
post '/administration/events/create', :controller => :administration, :action => :event_create
get '/administration/events/:id/edit', :controller => :administration, :action => :event_edit
post '/administration/events/:id/update', :controller => :administration, :action => :event_update
delete '/administration/events/:id/delete', :controller => :administration, :action => :event_delete
它有效,但是有更好的方法吗? (我对控制器的实际路线是这个条目数的3或4倍。
答案 0 :(得分:4)
您应该使用namespacing代替:
namespace :administration do
resources :events
end
答案 1 :(得分:2)
您似乎构建了一个巨大的控制器,其中包含许多处理一组资源的操作。您显示的示例:events
。这应该是单独的Administration::EventsController
。
您的网址似乎是REST风格,现在您应该将其与您的应用结构相匹配。
您的目录结构应该如下所示
/app
/controllers
/administration
events_controller.rb
..
然后您的路由将成为
namespace :administration do
resources :events
# ... other resources ...
end