我需要在Sinatra的ruby rest api中调用一个程序,我称之为:
result = ActiveRecord::Base.connection.exec_query query
之后我将其解析为哈希:
results = results.to_hash
我的程序已经有了它的数字格式,并返回所有数字,如92.00
。但在结果中,我将其解析为BigDecimal。当我将此返回给我的客户时,如:
JSON.pretty_generate(results)
以92.0
的形式返回。我已经开发了很多并且在任何地方都搜索了一种方法,使ActiveRecord尊重我的SQL查询返回的数字格式,但无法在任何地方找到。你们有没有配置解决方案或不同的方法在没有rails的ruby上进行纯SQL查询?
编辑:
要解决它一段时间我制作了下面的代码,但我不能接受这个作为这个问题的答案:
def self.format_hash_results(results)
rresults = results
rresults.each do |row|
row.each do |k,v|
row[k] = '%.2f' % v if v.class == BigDecimal
end
end
rresults
end