2017-02-18 3 views
1

Ich erstelle eine einfache App zum Abrufen von Bestandsinformationen unter Verwendung des stock_quote Edelsteins. Es ist mein erster Versuch, mit einem externen Datensatz zu spielen.Zuordnung eines Wertes innerhalb des Controllers

Ich bin derzeit in der Lage Informationen über Aktien zu finden, indem Sie den Ticker manuell in der Steuerung eingeben:

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

Wie passe ich, was in (‚‘) ist zB (‚AAPL‘) mit einem Wert , ähnlich dem, was ich normalerweise in meinen Ansichten tun: #{@model.attribute}

ich habe versucht zu,

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

und dann setzen find_stock Verfahren in einem privaten Verfahren lik e dies,

private 

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

Aber ich kann es nicht zur Arbeit bringen.

Antwort

1

Dies könnte, weil Sie die Parameter erlauben vergessen,

params.permit(:ticker) 

die Anfrage in der Konsole prüfen und sehen, ob Sie den richtigen Parameter Sie haben.

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

Zu Ihrer Information

den Parameterwert zu erhalten, müssen Sie die ID zu übergeben. {ticket: 'aapl}, ist die ID params[:ticket] oder {stock: {ticket: 'aapl}} Sie verwenden müssen params[:stock][:ticket]

+1

Nein, alles funktioniert einwandfrei. Keine Probleme dort. – Crashtor

+0

Könnte es sein, weil ich auch die ID der Suchanfrage übergeben muss? Alles ist unter der Show-Action, also übertrage ich natürlich schon die ID ... Aber mir scheint es nicht zu wissen, nach welchem: Ticker zu suchen ist. Und das ist, weil es den gleichen Methodenfehler geworfen hat, ohne Rücksicht auf die entsprechende Aktion. Ich habe auch versucht, alles in einem Array mit dem exakt gleichen Fehler zu wiederholen. – Crashtor

+0

Ja, um den Parameterwert zu erhalten, müssen Sie die ID übergeben. '{ticket: 'aapl}', die ID ist 'params [: ticket]' oder '{stock: {ticket:' aapl}}' du brauchst 'params [: stock] [: ticket]' –

0

Sollten Sie nicht nur die Methode aufrufen?

@stock = StockQuote::Stock.quote(find_stock) 
Verwandte Themen