Expire diary pages which contain comments by a user when necessary
[rails.git] / app / models / user_sweeper.rb
index 84373be74384ecf1ad80dc9135890cb5d04aabaa..5286b97b189f6c099aa342ce3b5282c46b45bfa0 100644 (file)
@@ -14,14 +14,18 @@ private
   def expire_cache_for(old_record, new_record)
     if old_record and
         (new_record.nil? or
-         old_record.visible != new_record.visible or
+         old_record.visible? != new_record.visible? or
          old_record.display_name != new_record.display_name)
       old_record.diary_entries.each do |entry|
-        expire_action(:controller => 'diary_entry', :action => 'view', :id => entry.id)
+        expire_action(:controller => 'diary_entry', :action => 'view', :display_name => old_record.display_name, :id => entry.id)
         expire_action(:controller => 'diary_entry', :action => 'list', :language => entry.language_code, :display_name => nil)
         expire_action(:controller => 'diary_entry', :action => 'rss', :language => entry.language_code, :display_name => nil)
       end
 
+      old_record.diary_comments.each do |comment|
+        expire_action(:controller => 'diary_entry', :action => 'view', :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id)
+      end
+
       expire_action(:controller => 'diary_entry', :action => 'list', :language => nil, :display_name => nil)
       expire_action(:controller => 'diary_entry', :action => 'list', :language => nil, :display_name => old_record.display_name)