I have a model like this.
class Money
include Mongoid::Document
#interval is how often the compensation is paid
field :salary, :type => Integer # must be saved in cents
field :commission, :type => Integer # must be saved in cents
field :total, :type => Integer # must be saved in cents
end
total is sum of salary and commission. salary and commission both are saved in cents. But my problem is that when it is edited i need to show it in dollar figure.
For example, if salary in cent is 5000000 then when i press edit i need to see 50000 in the salary textbox.
Some other solutions are also welcomed
If you want to enforce this pattern at the model level then you could override the setters and getters:
class Money
#...
def salary
self.salary / 100
end
def salary=(value)
self.salary * 100
end
end
In this case you'll have the editing/displaying for free, without writing any helpers.
Although, I think the proper way for doing it is at the view level through a helper definition. The model should not be concerned with this.
Look at ActionView::Helpers::NumberHelper
. In your case you could write your own helper like this:
def money_to_textbox (money)
money / 100
end
This helper method should be placed in app\\helpers and then in a view you can use like this:
<%= money_to_textbox @money %>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.