Voici mon copier/coller de votre code dans IRB. Il semble fonctionner correctement.
$ irb
1.8.7 :001 > class Ask
1.8.7 :002?>
1.8.7 :003 > def self.make_permalink(phrase)
1.8.7 :004?> phrase.strip.downcase.gsub! /\ +/, '-'
1.8.7 :005?> end
1.8.7 :006?>
1.8.7 :007 > end
=> nil
1.8.7 :008 > Ask.make_permalink("make a slug out of this line")
=> "make-a-slug-out-of-this-line"
Il semble que cela fonctionne. Testez-le dans votre irb
également, et voyez les résultats que vous obtenez. J'utilise la version 1.8.7 dans cet exemple, mais je l'ai également essayé dans une session Ruby 1.9.3 et cela a fonctionné de manière identique.
Utilisez-vous MRI comme implémentation de Ruby (même si je ne pense pas que cela fasse une différence dans ce cas) ?
Sur irb
passer un appel à Ask.public_methods
et vérifiez que le nom de votre méthode figure dans la liste. Par exemple :
1.8.7 :008 > Ask.public_methods
=> [:make_permalink, :allocate, :new, :superclass, :freeze, :===,
...etc, etc.]
Puisque vous avez également marqué ceci comme un ruby-on-rails
Si vous voulez vérifier le modèle réel de votre application, vous pouvez bien sûr utiliser la console de rails : ( bundle exec rails c
) et vérifier le caractère public de la méthode en question.