Ruby on rails 更优雅的Rails路由,然后是一个巨大的列表
我的Rails应用程序有一个管理控制器,但它越来越大,越来越笨拙。以下是一个示例:Ruby on rails 更优雅的Rails路由,然后是一个巨大的列表,ruby-on-rails,routes,Ruby On Rails,Routes,我的Rails应用程序有一个管理控制器,但它越来越大,越来越笨拙。以下是一个示例: get '/administration/events', :controller => :administration, :action => :event_index get '/administration/events/new', :controller => :administration, :action => :event_new post '/administration/
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倍。您应该改用:
您应改为使用:
您似乎已经构建了一个巨大的控制器,其中包含许多处理一组资源的操作。您显示的示例:
事件
。这应该在一个单独的管理::事件控制器
中
你的url看起来是REST风格,现在你应该将其与你的应用程序结构相匹配
您的目录结构应该如下所示
/app
/controllers
/administration
events_controller.rb
..
然后你的路线就变成了
namespace :administration do
resources :events
# ... other resources ...
end
您似乎已经构建了一个巨大的控制器,其中包含许多处理一组资源的操作。您显示的示例:
事件
。这应该在一个单独的管理::事件控制器
中
你的url看起来是REST风格,现在你应该将其与你的应用程序结构相匹配
您的目录结构应该如下所示
/app
/controllers
/administration
events_controller.rb
..
然后你的路线就变成了
namespace :administration do
resources :events
# ... other resources ...
end
如果我已经有了“events\u controller”该怎么办?这是针对事件(和其他资源)的特殊管理操作。这样可以吗?当然,这一点都没有问题。例如,我有一个rails项目,其中EventsController用于前台ent用户,
admin/events\u controller
用于管理员,而api/events\u controller
用于api(所有这些都具有稍微不同的行为)。我更喜欢它,而不是将它混合在一个大控制器中。它们确实共享相同的事件
模型。如果我已经有一个“events\u controller”怎么办?这是用于事件(和其他资源)的特殊管理操作。这样可以吗?当然,这一点都没有问题。例如,我有一个rails项目,其中EventsController用于前台ent用户,admin/events\u controller
用于管理员,而api/events\u controller
用于api(所有这些都具有稍微不同的行为)我更喜欢它,而不是把它混合在一个大控制器中。它们确实共享相同的事件模型。