diff --git a/app/models/status_message.rb b/app/models/status_message.rb index fd460f245..c3c75c09d 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -131,6 +131,18 @@ class StatusMessage < Post end end + def unserialize_attribute attr_name + if attr_name == "youtube_titles" + begin + super + rescue ActiveRecord::SerializationTypeMismatch + {} + end + else + super + end + end + protected def message_or_photos_present? diff --git a/spec/lib/youtube_titles_spec.rb b/spec/lib/youtube_titles_spec.rb index 82e6ec107..7153d2324 100644 --- a/spec/lib/youtube_titles_spec.rb +++ b/spec/lib/youtube_titles_spec.rb @@ -45,6 +45,12 @@ describe YoutubeTitles do StatusMessage.find(@post.id).youtube_titles }.should_not raise_error end + it 'can be re-marshalled if it is serializaed incorrectly' do + StatusMessage.where(:id => @post.id).update_all(:youtube_titles => "this is not yaml") + lambda { + StatusMessage.find(@post.id).youtube_titles + }.should_not raise_error + end end describe "YOUTUBE_ID_REGEX" do