/ / Ruby on Rails - Kaminari zlyháva v nesprávnej adrese URL - rubín na koľajniciach, rubín na koľajniciach-5, kaminari

Rubín na koľajniciach - Kaminari zlyháva v nesprávnej adrese URL - Ruby on rail, ruby-on-rail-5, kaminari

Mám niekoľko trás, ktoré ukazujú na jednu akciu kontrolóra takto:

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"

Môj dotaz vyzerá takto:

@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)

Ak som na stránke eliptických batérií (alebo akékoľvekostatných stránok, ktoré používajú rovnakú akciu regulátora) a vyberiem ďalšiu stránku alebo číslo stránky, požadovaná adresa URL je vždy eliptické-sklon-motors uri s mojím novým číslom stránky. Zdá sa, že Kaminari chytá prvú trasu, pretože keď zmením túto trasu v súbore trasy, zodpovedajúcim spôsobom sa zmenia požadované stránky. Existuje nejaká práca pre to bez toho, aby som skomplikovala moju aktuálnu štruktúru smerovania?

odpovede:

1 pre odpoveď č. 1

Myslím, že je potrebná iba jedna trasa, ale mali by ste odoslať parámy na odoslanie dopytov v akcii. Ako to:

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

A vo vašom regulátore:

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

Dúfam, že vám to pomôže


1 pre odpoveď č. 2

možno nie najlepšie riešenie, ale vy ste mohli vyskúšať nasledujúce, aj keď by to muselo byť posledná zadaná cesta:

získať "* path" => presmerovať ("/ search /: type")