Ruby on Rails -Kaminari默认为错误的URL



我有几条路线指向这样的单个控制器操作:

get '/elliptical-incline-motors', to: 'search#category_search'
get '/incline-ramp-wheels', to: 'search#category_search'
get '/elliptical-drive-belt', to: 'search#category_search'
get '/elliptical-batteries', to: 'search#category_search'

我的查询看起来像这样:

@products = Product.joins(category_model: {category_brand: :category}).where("categories.name = ? AND products.status = ?", category, "Viewable On Website & Backend").order(popularity: :desc).page(page).per(25)

如果我在椭圆形 - batteries页面(或使用相同控制器操作的其他任何页面),并且我选择下一页或页码,则请求的URL始终是我的椭圆形 - incline-motors uri with my新页码。看来Kaminari正在抓住第一条路线,因为当我在路由文件中更改此路线时,分页获取请求会相应地更改。是否可以解决这个问题,而没有解决我当前的路由结构?

我认为只有一条路线是必要的,但是您应该发送参数以调度访问行动中的查询。这样:

get '/search/:type', to: 'search#category_search'

在您的控制器中:

case params[:type]
when  "elliptical-incline-motors"
   method 1
when "incline-ramp-wheels"
   method 2
etc....
end

我希望它能帮助您

也许不是最好的解决方案,但是您可以尝试以下内容,尽管它必须是指定的最后一个路线:

get'*path'=> redirect('/search/:type')

最新更新