質問

私は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を追加すると、以前の状態を上書きすることができると思います。あなたはこの部分を削除する場合ので、多分、それはあなたが期待どおりに動作します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top