我正在尝试使用 Ruby on Rails 构建一个小型 Web 应用程序。这是一个跟踪人们感兴趣的股票的简单工具。
对于股票数据,我使用的是stock_quote gem。
目前,我有一个带有单个字段“ticker”的模型。在这里,人们会输入他们感兴趣的股票的股票代码。我希望能够在用户登录时根据代码填充信息表(完整的公司名称、价格等)。当我测试我当前的方法时,我得到一个“未初始化的常量 Target::StockQuote”错误。但是,当我在控制台中调用我的方法 get_current_price 或 get_company_name 时,它们可以正常工作。我知道我需要保持我的观点保持沉默,但我不确定如何让它比这更简单 - 并让它们正常工作。
我希望能够用用户正在观看的股票信息填充我的仪表板表。鉴于模型存储了代码(即 AAPL),我需要以某种方式将代码输入到模型中的一系列方法中,这些方法从 stock_quote API 中提取正确的数据并将结果返回到我的 HTML 表中。
谢谢您的帮助
股票.rb
class Stock < ActiveRecord::Base
attr_accessible :ticker
def get_company_name(ticker)
company_name = StockQuote::Stock.quote(ticker).company
end
def get_current_price(ticker)
company_name = StockQuote::Stock.quote(ticker).last
end
end
stock_controller.rb
class StocksController < ApplicationController
def dashboard
@stocks = Stock.all
end
end
仪表板.html.erb
<tbody>
<% @stocks.each do |stock| %>
<tr>
<td><%= stock.get_company_name(stock.ticker) %></td>
<td><%= stock.stock %></td>
<td><%= button_to "Delete", edit_target_path, :class => "btn btn-small btn-danger" %> </td>
</tr>
<% end %>
</tbody>