J'utilise le plug-in will_paginate.Rails will_paginate routage mise en cache des pages en double
En oder pour générer des itinéraires que je peux mettre en cache (/posts/index/2
au lieu de /posts?page=2
) J'ajouté ce qui suit à mon routes.rb:
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
La première ligne redirige /posts/index/1
à /posts/
en utilisant un contrôleur de redirection, afin d'éviter avoir une page en double.
Y a-t-il un problème avec la façon dont j'ai configuré la règle 'posts/index/:page'
?
Je pensais que l'ajout :requirements => {:page => /\d+/ }
garantirait que /post/index/
sans paramètre :page
ne devrait pas fonctionner, mais /posts/index.html
est la mise en cache.
Comment puis-je rediriger /posts/index/
vers /posts/
pour éviter d'avoir à la fois /posts.html
et /posts/index.html
?
Merci
MISE À JOUR
J'ai simplement ajouté
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
Je ne reçois pas les pages en double plus. Toutefois, je ne comprends toujours pas pourquoi je recevais /posts/index.html
. Toutes les explications ou suggestions sur la façon de rendre cette règle plus succincte sont les bienvenues;)!
map.connect '/posts/index/1', :controller => 'redirect', :url => '/posts/'
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
map.connect 'posts/index/:page',
:controller => 'posts',
:action => 'index',
:requirements => {:page => /\d+/ },
:page => nil
Merci, je vais certainement essayer cela et revenir pour mettre à jour ce fil. – deb