I''ve made some test: ------------------ CODE ------------------ class FooController < ActionController::Base caches_action :foo def foo render_text ''Hello, foo<br />'' end end class BarController < ActionController::Base def bar render :inline => <<-EOS Hello, bar <br /> <%= render_component(:controller => ''foo'', :action => ''foo'', :id => params[:id]) %> EOS end end class FooBarController < ActionController::Base def foo_bar render :inline => <<-EOS Hello, bar <br /> <%= render_component(:controller => ''foo'', :action => ''foo'', :id => params[:id]) %> EOS end end ----------------- END CODE --------------- When I access /foo/foo, I think that it should create a file ''/tmp/cache/localhost.3000/foo/foo.cache''. and it does. When I access /foo/foo/1, it''s created a file ''/tmp/cache/localhost.3000/foo/foo/1.cache'', it''s right. When I access /bar/bar, I think that it should create a file ''/tmp/cache/localhost.3000/foo/foo.cache'', but it''s created the file ''/tmp/cache/localhost.3000/bar/bar.cache''. And I access /foo_bar/foo_bar, it''s created the file ''/tmp/cache/localhost.3000/foo_bar/foo_bar.cache''. Two files are the same content.