我有这条线运行自定义SQL查询:格式化导致Ruby on Rails的
@avg_score = "#{ActiveRecord::Base.connection.execute(@avg_score_SQL)}"
即在运行时,@avg_score的数值为:
[{"score"=>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