Ich versuche, eine Methode in einem Modell zu definieren, die Dinge zu vereinfachen ich, wie unten in meinem Controller tun:Passing Arbeit einen Attributnamen als Argument in einem Verfahren nicht in Rails
Modelle/Spiel. rb
def build_array_for(words)
words.downcase.split(",")
end
ich die Methode in der Steuerung wie unten
games_controller.rb Aufruf
Beachten Sie, dass ‚red_words‘ ist ein Attribut von Instanzen von Spiel, die Wert soll eine Zeichenfolge
sein, wenn ich die Methode aufrufen, erhalte ich:
undefined lokale Variable oder Methode `red_words 'für GamesController
Wenn ich bauen die Methode als:
def build_array
red_words.downcase.split(",")
end
es funktioniert, aber da ich es mit anderen Attributen für den gleichen Zweck verwende, würde es keinen Sinn machen.
Was fehlt mir hier, könnte es sein, dass das Argument als String übergeben wird und aus irgendeinem Grund der Name des Attributs nicht erkannt wird?
Kein Glück, Alex, beide Alternativen stammen aus dem gleichen Fehler – Andrew
Rufen Sie es so '@wordsArray = @ game.build_array_for (: red_words)' –
Das ist großartig Alex es funktioniert jetzt gut. Vielen dank für Deine Hilfe! – Andrew