2012-02-25 74 views
0

我在ruby中创建了这个脚本来计算mfe mae。但它返回一个活动记录,我不能查询它的列。 如果我做了puts["mini"]我得到我如何查询返回的列

D:/TradingTools/torontotrader/app/helpers/rb1A5.tmp:28:in '[]': can't convert String into Integer (TypeError) 
    from D:/TradingTools/torontotrader/app/helpers/rb1A5.tmp:28 
    from D:/TradingTools/torontotrader/app/helpers/rb1A5.tmp:24:in `each' 
    from D:/TradingTools/torontotrader/app/helpers/rb1A5.tmp:24 
Complete(1) 

我做了细节的输出,这是一个TickData型的,我是被返回集合型的columsn的。我怎样才能得到的值

class TickData < ActiveRecord::Base 
    set_table_name "tickdata" 
end 
class Trades < ActiveRecord::Base 
    set_table_name "trades" 
end 
class TradesReport < ActiveRecord::Base 
    set_table_name "tradesreport" 
end 

sql="select * from tradesreport where entry>=(select min(time) from tickdata) and exitt <=(select max(time) from tickdata)" 

tradestocalculate= Trades.find_by_sql(sql) 
tradestocalculate.each {|item| 
    sql="select MIN(LASTPRICE) as mini,MAX(LASTPRICE) as maxi,COUNT(*) as no from tickdata where time >='#{item['entry']}' AND time <= '#{item['exitt']}' and 
symbol like '%#{item['symbol_alias'][0,3]}%'" 
    details= TickData.find_by_sql(sql) 
    puts details["mini"] 
+0

我觉得你这样做是错误的。活动记录是一个orm不是一个sql库。为此你会使用续集 – three 2012-02-25 21:06:28

回答

2

你的结果是details[0]['mini']details[0]['maxi']details[0]['no']