Rails ma strasznie mało elastyczny cache w porównaniu do Pylons/Myghty czy Django. Chciałbym zakeszować całą akcję ale tak aby cache się sam odświeżał co 5 minut. Nie widzę żadnej opcji abym tym sterować. Observers o jakich pisze Agile2 dotyczą bardziej trigerów niż czasowego wyzwalania kodu. Czyżby jedyna możliwość to crontab i chamskie czyszczenie plików? 
Musze przyznac ze jest to dla mnie wielkie zaskoczenie, ale na to wyglada. Sprawdzilem i Rails generuje cache w specyficzny sposob - buduje drzewo strony z plikow html w katalogu public. Zatem jesli strona jest w cache, skrypt rubiego wogole sie nie wykona - serwer www poda gotowy pliki.
Obserwers o ktorych wspominasz sluza do wywolywania akcji czyszczenia cache w pewnych, okreslonych sytuacjach. Dzialaja tak jak filtry ActiveRecords (np: before_filter do_sthing), jednak dzialaja po akcji. Zatem czyszcza cache w sytuacji edycji / dodania / usuniecia obiektow w bazie danych. Jest to sluszne - bo wtedy zmieni sie zawartosc strony - trzeba odbudowac cache.
Jednak brak chasowego limitu zycia cache jest wielkim brakiem (bledem?). Mysle jednak ze wynika on z filozofi jaka przyjeto do tworzenia cachu stron. Miejmy nadzieje ze model ten ulegnie zmianie.
Mozna to zaimplementowac przez Fragments Caching http://api.rubyonrails.com/classes/ActionController/Caching/Fragments.html
Wtedy mozna dodawac logike do cache tzn request przechodzi przez kontroler i akcje (recznie moznawywolywac expire).
[quote=Adamh]Mozna to zaimplementowac przez Fragments Caching http://api.rubyonrails.com/classes/ActionController/Caching/Fragments.html
Wtedy mozna dodawac logike do cache tzn request przechodzi przez kontroler i akcje (recznie moznawywolywac expire).[/quote]
Tylko gdzie trzymać dane o cache’u jeśli każdy request to czyści tak jak w PHP? W sesji? Developerzy RoR dali ciała. Tak podstawowa funkcjonalność powinna być integralną częścią frameworku.