我有一个带有Profit字段的用户模型。利润字段是DECIMAL(11,0)类型。我在表格上有一个 mask 的输入,允许用户输入类似$ 1,000的内容。我想格式化该值并从中删除除数字以外的所有内容,因此我将保存1000。这是我到目前为止所拥有的:
class User < ActiveRecord::Base
before_save :format_values
private
def format_values
self.profit.to_s.delete!('^0-9') unless self.profit.nil?
end
end
但是它一直将0保存在数据库中。看起来它正在将其转换为十进制格式之前的十进制格式。
最佳答案
试试这个:
def profit=(new_profit)
self[:profit] = new_profit.gsub(/[^0-9]/, '')
end
关于ruby-on-rails - 在Rails 3中保存到数据库之前如何格式化值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10214950/