aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/base.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionview/lib/action_view/base.rb')
-rw-r--r--actionview/lib/action_view/base.rb11
1 files changed, 6 insertions, 5 deletions
diff --git a/actionview/lib/action_view/base.rb b/actionview/lib/action_view/base.rb
index c5d8cdd409..71aa68499d 100644
--- a/actionview/lib/action_view/base.rb
+++ b/actionview/lib/action_view/base.rb
@@ -182,11 +182,12 @@ module ActionView #:nodoc:
end
def with_empty_template_cache # :nodoc:
- template_container = Module.new
- Class.new(self) {
- include template_container
- define_method(:compiled_method_container) { template_container }
- define_singleton_method(:compiled_method_container) { template_container }
+ subclass = Class.new(self) {
+ # We can't implement these as self.class because subclasses will
+ # share the same template cache as superclasses, so "changed?" won't work
+ # correctly.
+ define_method(:compiled_method_container) { subclass }
+ define_singleton_method(:compiled_method_container) { subclass }
}
end