Ruby on Rails中,如何通过非阻塞操作优化Rails路由清理流程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计292个文字,预计阅读时间需要2分钟。
我有一个订阅控制器,其路径如下所示:+get 'user/:user_id/subscriptions' +='subscriptions'
我有一个订阅控制器,其路由如下所示:get 'user/:user_id/subscription_requests' => 'subscriptions#index', as: :subscription_requests post 'user/:user_id/subscribe' => 'subscriptions#subscribe', as: :user_subscribe post 'user/:user_id/unsubscribe' => 'subscriptions#unsubscribe', as: :user_unsubscribe post 'user/:user_id/request_subscription' => 'subscriptions#request_subscription', as: :request_user_subscription post 'user/:user_id/accept_subscription' => 'subscriptions#accept', as: :accept_subscription_request post 'user/:user_id/reject_subscription' => 'subscriptions#reject', as: :reject_subscription_request
除索引之外的所有这些都是非平静的动作.如何在路径文件中使用类似资源的东西使这个更清洁,同时保持用户/:user_id /在路径中?
更新清晰度:
我试图避免逐行列出路由,而是做一些类似rails提供的其余操作.就像是:
resources:subscription_requests,:only => [:subscribe,:取消订阅,:拒绝,:接受等]
您可以使用路由的成员函数.resources :user, to: 'subscriptions', :only => [] do member do get 'subscription_requests' post 'subscribe' etc end end
这将产生如下路线:
subscription_requests_user GET /user/:id/subscription_requests(.:format) subscriptions#subscription_requests subscribe_user POST /user/:id/subscribe(.:format) subscriptions#subscribe
文件:guides.rubyonrails.org/routing.html#adding-more-restful-actions
本文共计292个文字,预计阅读时间需要2分钟。
我有一个订阅控制器,其路径如下所示:+get 'user/:user_id/subscriptions' +='subscriptions'
我有一个订阅控制器,其路由如下所示:get 'user/:user_id/subscription_requests' => 'subscriptions#index', as: :subscription_requests post 'user/:user_id/subscribe' => 'subscriptions#subscribe', as: :user_subscribe post 'user/:user_id/unsubscribe' => 'subscriptions#unsubscribe', as: :user_unsubscribe post 'user/:user_id/request_subscription' => 'subscriptions#request_subscription', as: :request_user_subscription post 'user/:user_id/accept_subscription' => 'subscriptions#accept', as: :accept_subscription_request post 'user/:user_id/reject_subscription' => 'subscriptions#reject', as: :reject_subscription_request
除索引之外的所有这些都是非平静的动作.如何在路径文件中使用类似资源的东西使这个更清洁,同时保持用户/:user_id /在路径中?
更新清晰度:
我试图避免逐行列出路由,而是做一些类似rails提供的其余操作.就像是:
resources:subscription_requests,:only => [:subscribe,:取消订阅,:拒绝,:接受等]
您可以使用路由的成员函数.resources :user, to: 'subscriptions', :only => [] do member do get 'subscription_requests' post 'subscribe' etc end end
这将产生如下路线:
subscription_requests_user GET /user/:id/subscription_requests(.:format) subscriptions#subscription_requests subscribe_user POST /user/:id/subscribe(.:format) subscriptions#subscribe
文件:guides.rubyonrails.org/routing.html#adding-more-restful-actions

