0

I am having a hard time even formulating the question I want to be answered, so here's my situation:

他の場所にある既存のデータベースを使用して、単純な株式市場プロッター ツールを作成しようとしています。私のアプリには、どのデータベースでも動作する優れた動的なプロッターが既にありますが、特定の方法でデータが必要です。私のモデル(データベース)は次のようになります。

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'にプロットできます。これは、モデルが属性を示しているためです。openclosedate

@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 に答える