will_paginateルーティングキャッシュの重複したページをレール
-
16-09-2019 - |
質問
私はwill_paginateプラグインを使用します。
は、私が(代わりに/posts/index/2
の/posts?page=2
)をキャッシュできるルートを生成するオーデルで、私は私の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
最初の行は重複ページを回避するために、リダイレクト・コントローラを使用して/posts/index/1
する/posts/
をリダイレクトします。
私は'posts/index/:page'
ルールを設定する方法に何か問題はありますか?
私は仕事ではないはずです:requirements => {:page => /\d+/ }
パラメータなしでその/post/index/
を確実にする:page
を追加すると思ったが、/posts/index.html
キャッシュされてきています。
どのように私は/posts/index/
と/posts/
の両方を避けるために/posts.html
する/posts/index.html
をリダイレクトすることができますか?
おかげ
<時間>UPDATE
私は単に追加
map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'
そして、私はもう重複したページが届きません。
私は/posts/index.html
を取得した理由しかし、私はまだuderstandません。この規則は、より簡潔にする方法上の任意の説明や提案を歓迎します;)!
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
解決
ここに私はあなたの質問に可能な答えを見つけます。
私は:page => nil
を追加すると、以前の状態を上書きすることができると思います。あなたはこの部分を削除する場合ので、多分、それはあなたが期待どおりに動作します。
所属していません StackOverflow