我想在resources
块中有一个嵌套的get
。所以我有以下路线:/businesses/page/:page
和/businesses/sold/page/:page
但是我不知道如何让它工作。以下是我的路线:
concern :pageable do
get 'page/:page', action: 'index', on: :collection
end
resources :businesses, only: [:index, :show] do
concerns :pageable
get 'sold', action: 'sold', on: :collection, as: 'sold' do
get 'page/:page', action: 'sold'
end
end
我如何让它工作?
更新:我希望上述路线有效。使用我上面的当前代码,我没有得到/businesses/sold/page/:page
.它们未列在rake routes
:
GET /businesses/page/:page(.:format) businesses#index
sold_businesses GET /businesses/sold(.:format) businesses#sold
businesses GET /businesses(.:format) businesses#index
business GET /businesses/:id(.:format) businesses#show
我在分页路线中使用page
。我只想为所有这些路由使用 1 个控制器 - BusinessesController
.
UPDATE2:我设法获得了我需要的路由,但这段代码看起来很丑:
get 'sold', action: 'sold', on: :collection, as: 'sold'
collection do
scope 'sold' do
get 'page/:page', action: 'sold'
end
end
如何重构?
进行 DRYing,但看起来这更有效。
resources :businesses do
get 'page/:page', on: :collection, action: :index
get 'sold/page/:page', on: :collection, action: :index
end
resources :businesses do
concerns :pageable do
collection do
get: 'sold'
end
end
end
我不确定你在问什么,但我想你想通过你的销售进行分页......对吧?