ActiveRecord :: Base.connection.exec_query返回BigDecimal

时间:2015-10-07 17:44:11

标签: ruby activerecord configuration connection

我需要在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

0 个答案:

没有答案