0

Ruby on Rails で小さな Web アプリケーションを構築しようとしています。人々が興味を持っている株を追跡するためのシンプルなツールです。

株式データについては、stock_quote gemを使用しています。

現在、「ティッカー」という単一のフィールドを持つモデルがあります。ここでは、注目したい銘柄のティッカー シンボルを入力します。ユーザーがログインしたときにティッカーに基づいて情報テーブルを作成できるようにしたい (完全な会社名、価格など)。現在のメソッドをテストすると、「初期化されていない定数 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 

stocks_controller.rb

class StocksController < ApplicationController

 def dashboard
  @stocks = Stock.all
 end 

end

dashboard.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>
4

1 に答える 1

-1

オブジェクトを指すようにボタンを更新し、stockそのアクションのアクションとメソッドが であることを伝える必要がありますdelete

<td><%= button_to "Delete", {:action => "delete", :id => stock.id }, :method => :delete, :class => "btn btn-small btn-danger" %></td>

参照してください: http://apidock.com/rails/v3.2.8/ActionView/Helpers/UrlHelper/button_to

または、この構文の方が優れていると思います。

<td><%= link_to "Delete", stock, :method => :delete, :class => "btn btn-small btn-danger" %></td>

ボーナス

非効率的に作成された Stock クラスがあります。tickerインスタンス メソッドを呼び出しているため、値をget_company_nameandに渡す必要はありませんget_current_price。インスタンス メソッドは、特定の Stock オブジェクトのコンテキスト内で既に動作しているため、値が何であるかを既に認識していますtickerstockこれが、ビューでメソッドを呼び出すことの意味stock.company_nameです。

class Stock < ActiveRecord::Base
  attr_accessible :ticker

  def company_name
    StockQuote::Stock.quote(ticker).company
  end

  def current_price
    StockQuote::Stock.quote(ticker).last
  end
end
于 2013-08-06T19:10:05.643 に答える