I have a model named, Measurable, that stores many different types of of

measurements for different things. All the measurements can be

represented

as a decimal, so my value column is of datatype decimal. My users

though

wish to view and input these value is either integers or mixed numbers

(ex:

31 1/8) as well, depending on the measurable_type. Right now I’m able

to

convert the mixed number to a decimal value and store it into my

database

as a proper decimal. But I’m trying to figure out how to convert it from

a

decimal value to the mixed number I’m wanting to show the user in my

form,

so they can make edits if necessary. Below I have the setter method I

made, but my attempts at creating a proper getter haven’t work. I’m not

really sure how to go about it.

class Measurable < ActiveRecord::Base

# columns: id, unit_id, measurable_type_id, reliability_id, value,

created_at, updated_at

belongs_to :measurable_type

def value=(value)

# Has more than one value

if value.split(" “).size > 1

values = value.to_s.strip.split(” ") # split the mixed number to

whole number and fraction for conversion preparation

if values.size > 1

# a whole number and fraction was supplied

whole_number = values.first.to_i

fraction = values.last

```
numerator = values.last.split("/").first.to_d
denominator = values.last.split("/").last.to_d
value = whole_number + (numerator / denominator)
else
# a fraction wasn't specified
whole_number = values.first
value = whole_number
end
end
@value = value
super
```

end

end