I have a Product model in Rails and the amount is stored as an integer in cents in the database.
Example of this field:
- What is the best way to allow admins that are creating the product to enter a human-friendly decimal like 10.00 instead of 1000?
- Should I just do this on the client-side before the form is submitted with Javascript?
- Should I change the field to a text field instead of integer and convert it with a before_save callback?
It seems like the Money gem might be overkill for this. Surely this is a common problem. What is a common way people solve this?
CodePudding user response:
Just as ideas
Using money gem
class Product < ApplicationRecord
monetize :price_cents
end
= f.input :price
Or using monkeypatching
class Product < ApplicationRecord
def price
self[:price] / 100.0
end
def price=(value)
super(value * 100)
end
end
In my opinion gem is more convenient