diff --git a/app/models/diary_entry.rb b/app/models/diary_entry.rb index 64a412d28c..99a56b2ce1 100644 --- a/app/models/diary_entry.rb +++ b/app/models/diary_entry.rb @@ -1,7 +1,7 @@ class DiaryEntry < ActiveRecord::Base - belongs_to :user + belongs_to :user, :counter_cache => true belongs_to :language, :foreign_key => 'language_code' - + has_many :comments, :class_name => "DiaryComment", :include => :user, :order => "diary_comments.id" diff --git a/app/views/user/view.html.erb b/app/views/user/view.html.erb index 31e9d7585c..39d6fd89e5 100644 --- a/app/views/user/view.html.erb +++ b/app/views/user/view.html.erb @@ -12,6 +12,7 @@ <%= number_with_delimiter(@user.traces.size) %> | <%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %> + <%= number_with_delimiter(@user.diary_entries.size) %> | <%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => @user.display_name %> | @@ -95,7 +96,7 @@

<% if @user and @user.administrator? -%> -

<%= t 'user.view.email address' %> <%= @this_user.email %>

+

<%= t 'user.view.email address' %> <%= @this_user.email %>

<% unless @this_user.creation_ip.nil? -%>

<%= t 'user.view.created from' %> <%= @this_user.creation_ip %>

<% end -%> diff --git a/db/migrate/20121005195010_add_diary_entry_counter_caches.rb b/db/migrate/20121005195010_add_diary_entry_counter_caches.rb new file mode 100644 index 0000000000..9c2c727105 --- /dev/null +++ b/db/migrate/20121005195010_add_diary_entry_counter_caches.rb @@ -0,0 +1,13 @@ +class AddDiaryEntryCounterCaches < ActiveRecord::Migration + def self.up + add_column :users, :diary_entries_count, :integer, :null => false, :default => 0 + + DiaryEntry.group(:user_id).pluck(:user_id).each do |user_id| + User.reset_counters(user_id, :diary_entries) + end + end + + def self.down + remove_column :users, :diary_entries_count + end +end