2011-11-27 65 views
0

A)控制器的代碼:處理雅虎財務行情散列中的Rails 3 - 續集

def show 
    @quote_list = params[:symbol] 
    puts @quote_list 

    require 'yahoofinance' 

    quote_type = YahooFinance::StandardQuote 

    quote_symbols = @quote_list 

    @quote_info = YahooFinance::get_quotes(quote_type, quote_symbols) do |qt| 
     puts qt.symbol 
     puts qt.bid.to_s 
     puts qt.ask.to_s 
    end 
    end 

訪問該雅虎財務散列是在底部的部分 - 我已經使用這個驅動在anothe SMS服務routine.The查看碼包括:

<p>Stock Symbol(s) Requested: <%= @quote_list %> </p> 
<p>Quote Details : </p> <%= @quote_info %> 

<table> 
    <tr> 
    <th>Stock Symbol</th> 
    <th>Company Name</th> 
    <th>Bid</th> 
    <th>Ask</th> 
    <th>Last Trade</th> 
    <th>Trade Price</th> 
    <th></th> 
    </tr> 

<% @quote_list.each do |stock| %> 
    <tr> 
    <td><%= stock.symbol %></td> 
    <td><%= stock.name %></td> 
    <td><%= stock.bid.to_s %></td> 
    <td><%= stock.ask.to_s %></td> 
    <td><%= stock.lastTradeTime.to_s %></td> 
    <td><%= stock.lastTrade %></td> 
    </tr> 
<% end %> 
</table> 

如下所示的編譯錯誤:

SyntaxError in Screenquotes#show 

Showing /home/lvl9/waf_projects/squotes_app/app/views/screenquotes/show.html.erb where line #24 raised: 

compile error 
/home/lvl9/waf_projects/squotes_app/app/views/screenquotes/show.html.erb:24: syntax error, unexpected tIVAR 
...buffer.append= ([email protected]);@output_buffer.safe_concat(... 
          ^

Extracted source (around line #24): 

21: 
22: <% @quote_list.each do |stock| %> 
23: <tr> 
24:  <td><%= [email protected] %></td> 
25:  <td><%= stock.name %></td> 
26:  <td><%= stock.bid.to_s %></td> 
27:  <td><%= stock.ask.to_s %></td> 


Listing of @quote_info instance variable hash contents from rails console session shown below : 

irb(main):051:0> quote_symbols = "goog,yhoo" 
=> "goog,yhoo" 
irb(main):052:0> @quote_info = YahooFinance::get_quotes(quote_type, quote_symbols) 

{「GOOG」=>#563.00「,@ dayHigh = 574.27,@ tickerTrend =」  = - + ===  「,@ date =」11/25/2011「,@ averageDailyVolume = 3120350,@ name = 「Google Inc.」,@ volume = 1562341,@formathash = {「v」=> [「volume」,「val.to_i」],「a」=> [「ask」,「val.to_f」], l「=> [」lastTradeWithTime「,」val「],」b「=> [」bid「,」val.to_f「],」m「=> [」dayRange「,」val「],」p2「= > [「changePercent」,「val.to_f」],「d1」=> [「date」,「val」],「t7」=> [「tickerTrend」,「convert(val)」],「c1」= > [「changePoints」,「val.to_f」],「c」=> [「change」,「val」],「n」=> [「name」,「val」],「o」=> [「打開「,」val.to_f「],」p「=> [」previousClose「,」val.to_f「],」l1「=> [」lastTrade「,」val.to_f「],」a2「=> 「平均每日體積」,「val.to_i」],「g」=> [「dayLow」,「val.to_f」],「t1」=> [「time」,「val」],「h」=>日期高「,」val.to_f「],」s「=> [」符號「,」val「]},@ time =」1:00 pm「,@ open = 565.19,@ bid = 0.0,@change =」 - 7.11 - -1.25%「,@ ask = 620.0,@ dayLow = 561.33,@ changePercent = -1.25,@ lastTrade = 563.0>,」YHOO「=>#15.10」,@ dayHigh = 15.2 5,@ tickerTrend =「  ======  」,@ date =「11/25/2011」,@ averageDailyVolume = 32945700,@ name =「Yahoo! 「,」音量= 10781728,@formathash = {「v」=> [「音量」,「val.to_i」],「a」=> [「問」,「val.to_f」],「l」 =「[」lastTradeWithTime「,」val「],」b「=> [」bid「,」val.to_f「],」m「=> [」dayRange「,」val「],」p2「=> 「changePercent」,「val.to_f」],「d1」=> [「date」,「val」],「t7」=> [「tickerTrend」,「convert(val)」],「c1」=> 「changePoints」,「val.to_f」],「c」=> [「change」,「val」],「n」=> [「name」,「val」],「o」=> [「open」 ,「val.to_f」],「p」=> [「PreviousClose」,「val.to_f」],「l1」=> [「lastTrade」,「val.to_f」],「a2」=> [「averageDailyVolume 「,」val「,」h「=>」dayHigh「 ,「val.to_f」],「s」=> [「symbol」,「val」]},@ time =「1:00 pm」,@ open = 15.05,@ bid = 13.5,@change =「+ 0.16 - + 1.07%「,@ ask = 0.0,@ dayLow = 14.9,@changePercent = 1.07,@ lastTrade = 15.1>}我試圖顯示每個成員的符號,買價,賣價,最後交易價和最後交易價格Yhoo)從視圖文件中循環中的這個散列中刪除。

我希望這使事情更清晰 - 幫助真的很感激。

回答

0

當您使用@symbol時,應該只是symbol,與您在同一模板中訪問的所有其他類變量相同。

編輯 @quote_list變量只是股票的符號,而不是返回的報價信息。返回的信息位於@quote_info中,它不包含作爲散列鍵的符號。

您可以遍歷這些符號並使用每個符號訪問相應的散列值,或者使用該塊中的鍵值迭代散列;關鍵將是符號。

如果你不關心順序,迭代散列是最簡單的。

<% @quote_info.each do |symbol, info| %> 
    <%= symbol %> <%= info.open %> 
... etc ... 

如果做一下順序護理,再下訂單的符號列表,但是你想,在它們之間迭代,並獲取每個符號的相關信息:

<% @quote_symbols.each do |symbol| %> 
    <% info = @quote_info[symbol] %> 
... etc ... 
+0

有沒有人看到我的上述評論重新 - 發送了錯誤的編譯錯誤 - 與沒有@前綴的符號相同的錯誤必須是Yahoo feed特有的東西 - 但看不到它。 – JimmyBandit

+0

@JoeMcGouran我看不出你如何得到*相同的*錯誤,但看到更新。 –

+0

戴夫,我是一名Rails新手 - 循環內剩餘的代碼是什麼樣子。幫助真的很感激。 – JimmyBandit