2012-03-25 135 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']