I am adding a function to check for 2 digit dates and change them into
4 digit before a Date.new has time to choke on it. My model is :
class Person < ActiveRecord::Base
belongs_to :household
def before_validation
debugger
self.month_int = self.month.to_i
self.day_int = self.day.to_i
self.year_int = self.year.to_i
if (year_int > 0) && (month_int > 0) && (month_int < 13) &&
(day_int > 0)&& (day_int < 32)
if (self.year_int < 100)
@compare = Date.new(2000+self.year_int,self.month_int,
self.day_int)
if (@compare > Date.today)
self.year_int = 1900+self.year_int
else
self.year_int = 2000+self.year_int
end
self.year = self.year_int.to_s
end
self.birthday = Date.new(self.year_int, self.month_int,
self.day_int)
else
errors.add(“Date”)
end
debugger
end
validates_inclusion_of :month_int, :in => 1…12,
:message => “should be between 1 and 12”
validates_inclusion_of :day_int, :in => 1…31,
:message => “should be between 1 and 31”
validates_numericality_of :year_int
validates_inclusion_of :sex, :in => %w{ M F },
:message => “should be ‘M’ or ‘m’ or ‘F’ or ‘f’”
validates_presence_of :sex, :month, :day, :year
validates_date :birthday, :before => Date.today+1, :after => ‘Jan 1
1900’, :before_message => ‘Needs to be today or
before.’, :after_message => ‘Needs to be after 1/1/1900.’
end
since I added the code that changes a model variable, I get 2
breakpoints from the 2 changes. This is not needed by my app and
causes a breakpoint that my user won’t know how to bypass. Please help
with removing this issue. I assume rails is error-checking my code and
having a fit about not telling the views that a field has changed…