Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何查询返回的列_Ruby_Activerecord - Fatal编程技术网

Ruby 如何查询返回的列

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"

我用ruby创建了这个脚本来计算mfe mae。但是,它返回一个活动记录,我无法查询它的列。 如果我做了一个puts[迷你]我会得到

我做了一个细节输出,它是一个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]['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"]