嵌套获取路由



我想在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

我不确定你在问什么,但我想你想通过你的销售进行分页......对吧?

最新更新