0

我什至很难提出我想要回答的问题,所以这是我的情况:

我正在尝试使用我在其他地方填充的现有数据库制作一个简单的股市绘图仪工具。我的应用程序已经有一个很好的动态绘图仪,可以与任何数据库一起使用,但它需要以某种方式获取数据。所以说我的模型(数据库)看起来像这样:

Stock:

|___ticker___|___open___|___close___|___date___|
|    aapl    |   100    |   101     | 1/1/11   |
|    aapl    |   101    |   102     | 1/2/11   |
|    goog    |   500    |   450     | 1/1/11   |
|    goog    |   450    |   451     | 1/2/11   |
...

我的绘图仪例程使用类属性(我认为这是术语),它对应于数据库中的列。

我可以选择与 对应的所有数据'aapl',并轻松绘制openclose对比,date因为我的模型已经说明了属性。

@stock = Stock.select_by_ticker('aapl')
>> @stock.open  #=> 100 ...
>> @stock.close #=> 101 ...
>> @stock.date  #= 1/1/11 ...

所以属性是

{open, close, date}

但如果我想比较不同股票的收盘价,我需要与每只股票相关的属性。所以基本上我想最终得到一个以股票名称作为属性的模型,每个属性都对应于数据库中该股票代码的大块。使用易于构建的范围,我想要类似的东西:

@stock = Stock.select_close_by_ticker('aapl','goog') 

属性是:

{aapl, goog, date}

其中 aapl 和 goog 仅包含该代码的收盘价数据。如果需要,我可以运行多个数据库查询,现在我只想能够将我的数据排序到这个表单中。此外,它必须是完全动态的,所以我不能硬编码'aapl''goog'以及数以百万计的其他代码到我的模型中。

4

1 回答 1

0

会像:

stocks = ['appl', 'goog']
Stock.find(:conditions => ['ticker in (?)'], stocks)

适合你的场景?

于 2012-04-17T16:40:32.163 回答