我正在为我的iOS应用程序制作JSON API,并且(即使我在客户端上对其进行格式化)我想以我们在客户端上看到的格式存储我的lat / long数据。
我目前的解决方案
class Location < ActiveRecord::Base
before_save :format_coordinate_precision
def format_coordinate_precision
lati = "%.8f" % self.latitude
self.latitude = lati.to_f
end
给我一个保证8位数的精度,但省略了尾随零。此外,这似乎不是最具生产力的方法。有ActionView::Helpers::NumberHelper number_with_precision
,但似乎是在.erb视图文件中使用。
答案 0 :(得分:1)
您认为number_with_precision
方法适用于视图是正确的,所有NumberHelper
函数都是如此。但是,如果您愿意弯曲规则(这是一个完全不同的讨论),您可以通过明确地包含NumberHelper
模块在视图之外调用这些函数:
include ActionView::Helpers::NumberHelper
number_with_precision(1234567890.314159, precision: 10)
#=> 1234567890.3141590000
通常,可以通过包含其辅助模块来调用各自层之外的辅助函数。虽然上面的例子似乎无害,但我建议谨慎导入帮助程序 - 在使用预期使用范围之外使用MVC函数通常违反了Rails惯例。