diff --git a/app/models/profile.rb b/app/models/profile.rb index 122159285..3fa9b84b8 100644 --- a/app/models/profile.rb +++ b/app/models/profile.rb @@ -88,12 +88,12 @@ class Profile end def date= params - params['year'] = '1000' if params['year'].blank? - if ['month', 'day'].all? { |key| params[key].present? } + if ['month', 'day'].all? { |key| params[key].present? } + params['year'] = '1000' if params['year'].blank? date = Date.new(params['year'].to_i, params['month'].to_i, params['day'].to_i) self.birthday = date - elsif ['month', 'day'].all? { |key| params[key].blank? } - self.birthday = nil + elsif [ 'year', 'month', 'day'].all? { |key| params[key].blank? } + self.birthday = nil end end diff --git a/spec/models/profile_spec.rb b/spec/models/profile_spec.rb index a7b9abe86..2a54945de 100644 --- a/spec/models/profile_spec.rb +++ b/spec/models/profile_spec.rb @@ -91,7 +91,7 @@ describe Profile do profile.birthday.should == nil end - it 'does not change with one or more blank values' do + it 'does not change with blank month and day values' do profile.birthday = Date.new(2000, 1, 1) profile.date = { 'year' => '2001', 'month' => '', 'day' => ''} profile.birthday.year.should == 2000