我有這條線運行自定義SQL查詢:格式化導致Ruby on Rails的
@avg_score = "#{ActiveRecord::Base.connection.execute(@avg_score_SQL)}"
即在運行時,@avg_score的數值爲:
[{"score"=>8, 0=>8}]
結果是正確的,但它打印出來就像這樣: - /我只是想要它打印出「8」
我怎樣才能得到它打印得分值?
8," 0=">8}]" 結果是正確的,但它打印出來就像這樣:="" -="" 我只是想要它打印出「8」="" 我怎樣才能得到它打印得分值?"="">
我有這條線運行自定義SQL查詢:格式化導致Ruby on Rails的
@avg_score = "#{ActiveRecord::Base.connection.execute(@avg_score_SQL)}"
即在運行時,@avg_score的數值爲:
[{"score"=>8, 0=>8}]
結果是正確的,但它打印出來就像這樣: - /我只是想要它打印出「8」
我怎樣才能得到它打印得分值?
[{"score"=>8, 0=>8}]
只是一個包含一個元素的數組,而該元素是一個散列。因此,您可以像這樣訪問得分:
@avg_score[0]['score']
如果您使用execute方法,則必須在完成使用後釋放Result對象。 此外,您的聲明可以使用沒有引號。 如果你總是有1個結果行,你最好使用selecy_one
@avg_score = ActiveRecord::Base.connection.select_one(@avg_score_SQL)['score']
嘗試select_one,而不是執行 – Fivell 2012-03-25 16:14:51