2017-02-18 3 views
1

stock_quote gemを使用して在庫情報を取得するための簡単なアプリを構築しています。これは、私の最初の試みは、外部のデータセットで遊ぶことです。私は現在、コントローラ内部で手動でティッカーを入力することにより、株式の情報を見つけることができるよコントローラ内の値の一致

@stock = StockQuote::Stock.quote('aapl') 

がどのように私は(「」)の内側にあるものと一致しない例えば(「AAPL」)値を持ちます、私は通常私の意見の内側に何に似て:#{@model.attribute}

私がしようとした、

@stock = StockQuote::Stock.quote('find_stock') 

、その後プライベートメソッドリクにfind_stock方法を置きますe this

private 

def find_stock 
    params.find(params[:ticker]) 
end 

しかし、私はそれを動作させることはできません。

答えて

1

これかもしれないあなたは、パラメータを許可することを忘れているため、

params.permit(:ticker) 

は、コンソールで要求を点検し、あなたが望む右のパラメータを持っているかどうかを確認します。あなたの情報については

def find_stock 
    ticket = params.permit(:ticker) 
    StockQuote::Stock.quote(ticket) 
end 

パラメータ値を取得するには、IDを渡す必要があります。 {ticket: 'aapl}、IDはparams[:ticket]または{stock: {ticket: 'aapl}}です。params[:stock][:ticket]

+1

いいえ、すべて正しく渡されます。そこに問題はありません。 – Crashtor

+0

検索クエリのIDも渡す必要があるのでしょうか?すべてがショーアクションの下にあるので、当然IDを渡しています...しかし、それは私には分かりません。それは、対応するアクションに関係なく、同じメソッド・エラーが発生していないからです。私はまた、正確に同じエラーで配列内のすべてをループしようとしました。 – Crashtor

+0

はい、パラメータ値を取得するには、idを渡す必要があります。 '{ticket:' aapl} '、IDは' params [:ticket] 'または' {stock:{stock:{tickets:{ticket: 'aapl}} '' params [:stock] [:ticket]'を使用する必要があります。 –

0

このメソッドを呼び出すべきではありませんか?

@stock = StockQuote::Stock.quote(find_stock) 
関連する問題