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ď č. 1Myslí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")