【发布时间】:2020-06-26 13:08:57
【问题描述】:
所以我有一个更复杂的路线,我对两个嵌套范围的顺序有疑问。他们的顺序似乎颠倒了。我希望最内部的范围是操作之前 URL 的最后一段。但这是第一个。
routes.rb
namespace :customer do
namespace :api do
resources :products, only: [], param: :uid do
scope module: 'products' do
scope :buyer do
post :set_to_waiting_list, to: 'buyers#set_to_waiting_list'
end
end
end
end
end
控制器:
module Customer
module Api
module Products
class BuyersController < Customer::ApiController
def set_to_waiting_list
# do stuff
end
end
end
end
end
这在运行rake routes 时给了我这条路线:
customer_api_product_set_to_waiting_list POST /customer/api/buyer/products/:product_uid/set_to_waiting_list(.:format) customer/api/products/buyers#set_to_waiting_list
但我真正要查找的网址是:
POST /customer/api/products/:product_uid/buyer/set_to_waiting_list
原因是这会修改买家而不是产品。此外,买家是通过产品 uid(加上登录用户)获取的,因此这种 URL 格式更有意义。
我不太明白
【问题讨论】:
标签: ruby-on-rails routes