diff --git a/app/models/topic_user.rb b/app/models/topic_user.rb index 80e2745e95..e8306e8b0f 100644 --- a/app/models/topic_user.rb +++ b/app/models/topic_user.rb @@ -100,6 +100,8 @@ class TopicUser < ActiveRecord::Base rows = TopicUser.update_all({last_visited_at: now}, {topic_id: topic.id, user_id: user.id}) if rows == 0 TopicUser.create(topic_id: topic.id, user_id: user.id, last_visited_at: now, first_visited_at: now) + else + observe_after_save_callbacks_for topic.id, user.id end end diff --git a/spec/models/topic_user_spec.rb b/spec/models/topic_user_spec.rb index a8cf85e0f4..0a67ea6d3e 100644 --- a/spec/models/topic_user_spec.rb +++ b/spec/models/topic_user_spec.rb @@ -107,6 +107,10 @@ describe TopicUser do topic_user.last_visited_at.to_i.should == today.to_i end + it 'triggers the observer callbacks when updating' do + UserActionObserver.instance.expects(:after_save).twice + 2.times { TopicUser.track_visit!(topic, user) } + end end describe 'read tracking' do