2012-03-25 96 views
0

我有这条线运行自定义SQL查询:格式化导致Ruby on Rails的

@avg_score = "#{ActiveRecord::Base.connection.execute(@avg_score_SQL)}" 

即在运行时,@avg_score的数值为:

[{"score"=>8, 0=>8}] 

结果是正确的,但它打印出来就像这样: - /我只是想要它打印出“8”

我怎样才能得到它打印得分值?

+0

尝试select_one,而不是执行 – Fivell 2012-03-25 16:14:51

回答

2

[{"score"=>8, 0=>8}]只是一个包含一个元素的数组,而该元素是一个散列。因此,您可以像这样访问得分:

@avg_score[0]['score'] 
0

如果您使用execute方法,则必须在完成使用后释放Result对象。 此外,您的声明可以使用没有引号。 如果你总是有1个结果行,你最好使用selecy_one

@avg_score = ActiveRecord::Base.connection.select_one(@avg_score_SQL)['score']