更优雅的Rails路由然后是一个巨大的列表

时间:2014-06-04 12:24:34

标签: ruby-on-rails routes

我有一个用于我的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倍。

2 个答案:

答案 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