2011-06-22 5 views
-2

Je suis en train d'écrire une boucle while en Ruby semblable à ce qui suit:méthode non définie '+ @' - Erreur Ruby

number = 3 
string = "lalaLand" 
def main(number, string) 
    n = 1 
    while n <= number do 
     print string + 'something else' + n.to_s 
     n = n + 1 
    end 
end 
main(number, string) 

Et je continue à obtenir l'erreur:

...: undefined method `[email protected]' for "lalaLand":String (NoMethodError) 

Can Quelqu'un m'aider avec ça? Merci

---- EDIT --- (code réel, peut-être il y a quelque chose que j'ai raté)

devel_number est la seule déclarée comme int (ie: devel_number = 4, le reste sont des chaînes: project_name = "lalaLand") ...

def b_sani_dev(project_home, source_dir, project_name, devel_number) 

    n = 1 
    while n <= devel_number do 
     system 'mkdir -p ' + project_home + 'dev_'+ n.to_s + '/main' 
     system 'mkdir -p ' + project_home + 'dev_' + n.to_s + '/LOG' 
     n = n + 1 
    end    
    b_sani_dev(project_home, source_dir, project_name, devel_number) 
+1

Fonctionne bien pour moi. – User1578

+0

def b_sani_dev (project_home, source_dir, project_name, devel_number) n = 1 alors n <= devel_number faire système 'mkdir -p' + project_home + 'dev +' + n.to_s + '/ m' du système « mkdir - p '+ projet_home +' dev_ '+ n.to_s +'/L ' n = n + 1 fin – mhz

+0

hmm mon mauvais, va ajouter edit pour le vrai code – mhz

Répondre

0

Tout le code que vous avez posté devrait fonctionner correctement, mais l'erreur vient de tenter d'utiliser l'opérateur + unaire sur une chaîne, ce qui est illégal.

+17 # totally fine 
+"hi" # throws an error; what does this even mean? 
+1

L'opérateur + fonctionne pour les chaînes dans ruby ​​:) – mhz

+0

http://www.wellho.co.uk/solutions/ruby-string-functions-in-ruby.html – mhz

+2

Oui, lorsque vous ajoutez deux chaînes, '+' fonctionnera . Votre message d'erreur provient de la tentative d'utiliser un '+' sur une seule chaîne, ce qui n'a aucun sens. –

Questions connexes