1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
ActionController::Routing::Routes.draw do |map| Mephisto::Routing.connect_with map do # Fix for some of Typo old paths map.typo_atom_new 'articles.atom', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss_new 'articles.rss', :controller => 'feed', :sections => "", :action => 'feed' map.typo_atom_comments 'comments.atom', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_atom10_comments 'xml/atom10/comments/feed.xml', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_rss_comments 'comments.rss', :controller => 'feed', :sections => ["all_comments.xml"], :action => 'feed' map.typo_atom_feed 'xml/atom/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_atom10_feed 'xml/atom10/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss_feed 'xml/rss/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' map.typo_rss2_feed 'xml/rss20/feed.xml', :controller => 'feed', :sections => "", :action => 'feed' # esta última linha é o erro! map.dispatch 'articles/*path', :controller => 'mephisto', :action => 'dispatch' end end |
Explicando: numa instalação padrão de Mephisto esse tanto de código não existe. Ele termina apenas na chamada ao método connect_with_map. Alguns já devem ter notado para quê isto serve: remapear as antigas URLs de Typo para Mephisto.
Você vão se lembrar que a engine antiga de blog que eu usava era Typo. Quando migrei para Mephisto eu não queria que quem tivesse linkado para meu site de repente passasse a ver erros 404. O engraçado é que eu acho que logo no começo isso funcionava. Não sei o que começou a causar o erro.
O que eu descobri é que tirando o último map.dispatch faz os testes integrados todos passarem! E não adiantou mudar a linha de lugar: colocando antes, depois ou dentro do bloco do connect_with_map parece causar o mesmo erro. E tanto map.connect quanto map.dispatch dá problema com esse pattern de URL.
Ainda não investiguei mais a fundo para entender porque uma linha que tecnicamente não deveria dar problema acaba desligando todo sistema de cache do Mephisto. De qualquer forma, acabei de refazer o deployment sem esse mapeamento e parece que tudo voltou ao normal, com o cache habilitado e sendo corretamente expirado. Vamos ver se continua assim.