gpt4 book ai didi

ruby-on-rails - 使用非静态操作清理 Rails 路由

转载 作者:行者123 更新时间:2023-12-04 06:09:52 24 4
gpt4 key购买 nike

我有一个订阅 Controller ,其路由如下所示:

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

除了index 之外的所有操作都是非restful 操作。如何在路径文件中使用 resources 之类的东西使路径文件更清晰,同时将 user/:user_id/ 保留在路径中?

为清楚起见而更新:

我试图避免逐行列出路线,而是做一些类似于 rails 提供的 restful Action 的事情。像这样的东西:

resources :subscription_requests, :only => [:subscribe, :unsubscribe, :reject, :accept, etc]

最佳答案

可以使用路由的成员函数。

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

文档:http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

关于ruby-on-rails - 使用非静态操作清理 Rails 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com