我想拥有网址/community
,所以这就是我所做的。我创建了控制器:CommunitiesController
,并将其放在我的路线中:
get 'community' => 'communities#index'
我设置不正确吗?我遇到的问题是我现在想添加kaminari分页运动场,但命名不匹配导致此功能不起作用:
get 'community' => 'communities#index'
resources :communities do
get 'page/:page', action: :index, on: :collection
end
因为当我想使用/communities/page/1
时它希望我使用用户/community/page/1
使用此用例设置控制器和路由的正确方法是什么?
我愿意
get 'community' => 'communities#index'
get 'community/page/:page' => 'communities#index'
但是您可能需要调整paginate
方法并传递显式参数以使其起作用。我不确定是否需要这样做,但是看起来像这样
<%= paginate(@communities, params: { controller: 'communities', action: 'index' } %>
声明原始community
路由的更“资源丰富”的方式如下:
resources :communities, path: "community", only: "index"
然后您可以按照以下方式添加Kaminari路线:
resources :communities, path: "community", only: "index" do
get "page/:page", action: :index, on: :collection
end
有关详细说明,请阅读非常有用的Rails Routing from the Outside In指南。