Been poking through the source looking for the "right" place to access
user-entered data from forms before they are updated to the model.  My
goal is to clean up BigDecimal to strip thousands-separators, since
commas cause truncation and my users are frequently cutting-and-
pasting from other apps where numbers are displayed with separators.

convert_type_for_mass_assignment seems to do the same thing for other
types. I propose modifying it by adding this before the final else
clause:

      elsif field_type <= BigDecimal
        delimiter = I18n.translate(:'number.format', :raise => true)
[:delimiter] rescue ''
        value.delete(delimiter)

Thought about protecting against misplaced separators, e.g., by using
gsub(/,(\d{3})/, '\1') instead of delete. However, if I do that, I'd
really prefer reporting the error to the user, and not sure how to do
that in a general way.

One more thought - if not appropriate to add this BigDecimal handling
generally, would it make sense to add a callback to make it easier to
intercept types not caught by the final 'else' ?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/hobousers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to