Je suis en train de définir une méthode dans un modèle pour simplifier les choses que je fais dans mon contrôleur comme ci-dessous:Le passage d'un nom d'attribut comme argument dans une méthode ne fonctionne pas dans Rails
modèles/jeu. rb
def build_array_for(words)
words.downcase.split(",")
end
J'appelle la méthode dans le contrôleur comme ci-dessous
games_controller.rb
@wordsArray = @game.build_array_for(red_words)
Notez que « red_words » est un attribut de cas de jeu dont la valeur est censée être une chaîne
Quand j'appelle la méthode que je reçois:
variables locales non définies ou méthode `red_words 'pour GamesController
Si je construis la méthode que:
def build_array
red_words.downcase.split(",")
end
cela fonctionne mais puisque je l'utilise avec d'autres attributs dans le même but, cela n'aurait pas de sens.
Qu'est-ce qui me manque ici, est-ce que l'argument est passé comme une chaîne et pour une raison quelconque le nom de l'attribut n'est pas reconnu?
Pas de chance Alex, les deux alternatives dérivent dans la même erreur – Andrew
Appelez-le comme ceci '@wordsArray = @ game.build_array_for (: red_words)' –
C'est génial Alex ça fonctionne très bien maintenant. Merci beaucoup pour votre aide! – Andrew