2012-04-16 26 views
0

我有一個困難時期,甚至制定我想回答這個問題的屬性,所以這裏是我的情況:如何進行選擇的內容爲Rails模型

我試圖做一個簡單的股市繪圖儀使用現有數據庫的工具我填充其他地方。我的應用程序已經有了一個很好的動態繪圖儀,可以與任何數據庫一起工作,但它以某種方式期待數據。所以說,我的模型(數據庫)是這樣的:

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因爲我的模型說attributues。

@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'以及所有數以百萬計的其他代碼硬編碼到我的模型中。

回答

0

會是這樣的:

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

工作?

+0

這可以選擇數據,但問題是,這給你一個代價的領域。我想讓我的模型的'aapl'和'goog'屬性各自包含其相應的數據集(想一想數據庫中的行) – 2012-04-18 16:59:29

+0

一旦選擇了數據,就可以迭代它並將其轉換爲另一個數據結構。你想要的結果如下所示:{:aapl => 150,:goog => 100}這裏的數字是收盤價嗎? – 2012-04-19 22:21:19

+0

這可能是一個好主意!這裏的散列表現就像原始數據結構一樣......我會嘗試一下 – 2012-04-21 01:54:16

相關問題