【发布时间】:2020-04-14 14:11:40
【问题描述】:
我在 routes.rb 文件中设置了以下路由:
Rails.application.routes.draw do
devise_for :users
resources :bookings do
collection do
get :my_bookings
end
end
resources :spaces, only: [:index, :new, :create, :show] do
resources :bookings, only: [:index, :new, :create, :show]
end
resources :bookings do
resources :payments, only: :new
end
root to: 'pages#home'
get 'about', to: 'pages#about'
mount StripeEvent::Engine, at: '/stripe-webhooks'
end
我重复了resources :bookings 3 次:两次,因为我知道这是避免嵌套资源超过一个级别和另一个集合的好习惯。
当我在路由末尾添加集合部分时,rails Rails 忽略了它,而是点击了显示操作。
我阅读了Rails ignores collection route and goes with show action instead,并在最后移动了收集部分。
现在一切正常,但是路线文件很庞大,并且资源 :booking 重复了 3 次。有没有办法以更少的重复来重构这些路线?
【问题讨论】:
标签: ruby-on-rails ruby routes