diff --git a/app/models/status_message.rb b/app/models/status_message.rb index c71856ec4..254bbaf0b 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -106,7 +106,7 @@ class StatusMessage < Post def create_mentions mentioned_people_from_string.each do |person| - self.mentions.create(:person => person) + self.mentions.find_or_create_by_person_id(person.id) end end diff --git a/spec/models/status_message_spec.rb b/spec/models/status_message_spec.rb index e9ab1b5e6..a11e075fc 100644 --- a/spec/models/status_message_spec.rb +++ b/spec/models/status_message_spec.rb @@ -199,6 +199,14 @@ STR @sm.create_mentions @sm.mentions(true).map{|m| m.person}.to_set.should == @people.to_set end + + it 'does not barf if it gets called twice' do + @sm.create_mentions + + expect{ + @sm.create_mentions + }.should_not raise_error + end end describe '#mentioned_people' do it 'calls create_mentions if there are no mentions in the db' do