Tuesday, June 25, 2013

[Rails] Re: Correct use of before_validation

I've managed to get the event to fire now, but what I get from STDOUT is
0.0
So I guess that means I'm not receiving a string from input.
____

before_validation :convert_hours

protected

def convert_hours
STDOUT << hours
if hours && hours =~ /:/
hrs, mins = hours.scan( /(\d*):(\d*)/ ).first
self.hours = ( hrs.to_f + ( mins.to_f / 60.0 ) ).round(4)
end
end

____

However, the validation that triggers:

____
validates :hours, :presence => true, :numericality => { :greater_than =>
0, :less_than => 12 }
____

States that Hours is not a number.

So where is this 0.0 coming from? Is it even possible to get this value
as a string if it's a Decimal in the database?

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/a1eab4e283ac003a4c3190f709a70bfa%40ruby-forum.com.
For more options, visit https://groups.google.com/groups/opt_out.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate