1

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

ありがとう


アップデート

単に追加しました

map.connect '/posts/index/', :controller => 'redirect', :url => '/posts/'

そして、私はもう重複したページを取得していません。

しかし、なぜ私が得たのかまだわかりません/posts/index.html。このルールをより簡潔にする方法についての説明や提案は大歓迎です;)!

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
4

1 に答える 1

1

ここで私はあなたの質問に対する可能な答えを見つけました。

:page => nil追加することで前の条件を上書きできると思います。したがって、この部分を削除すると、期待どおりに機能する可能性があります。

于 2010-02-26T18:10:16.843 に答える