从数据库收集后格式化数据

时间:2011-06-27 20:53:35

标签: ruby-on-rails database

通过以下方式,我可以在分配给对象时格式化数据:

def cost=( w )
    super w.gsub( ",", "." ).gsub( /[^0-9\.]/, "" ).to_f
end

有另一种简单的方法吗? 我的意思是,当我从数据库中获得价格时会自动格式化数据,如上例所示?

1 个答案:

答案 0 :(得分:1)

不确定。在您的视图中,只需使用number_with_delimeter,例如:

<%= number_with_delimiter @record.cost %>

这假设您已将Rails区域设置设置为要使用的格式的相应本地。否则你可以强制使用本地,例如:

<%= number_with_delimiter @record.cost, :locale => :fr %>

顺便说一句,你可以通过覆盖cost在你的模型中执行此操作,例如:

def cost
  some_formatting_method self[:cost]
end

......但这会破坏MVC原则。正如我所说,最好在您的视图中使用内置帮助程序执行此操作。