Ruby 如何查询返回的列
我用ruby创建了这个脚本来计算mfe mae。但是,它返回一个活动记录,我无法查询它的列。 如果我做了一个puts[迷你]我会得到 我做了一个细节输出,它是一个TickData类型,我返回的columsn是聚合类型。如何获取值Ruby 如何查询返回的列,ruby,activerecord,Ruby,Activerecord,我用ruby创建了这个脚本来计算mfe mae。但是,它返回一个活动记录,我无法查询它的列。 如果我做了一个puts[迷你]我会得到 我做了一个细节输出,它是一个TickData类型,我返回的columsn是聚合类型。如何获取值 class TickData < ActiveRecord::Base set_table_name "tickdata" end class Trades < ActiveRecord::Base set_table_name "trades"
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]['mini']、详细信息[0]['maxi']和详细信息[0]['no']我认为您做得不对。活动记录是orm而不是sql库。为此,你会使用sequel
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"]