2016-07-20 1 views
-1

Je suis nouveau à ruby, et je n'ai aucune idée, comment corriger cette erreur. quand j'exécute mon script contenant le code ci-dessous, j'obtiens toujours l'erreur: 'aucune conversion implicite de Symbol en Integer. Je pense que le problème est dans les lignes @killProc ..., @Name = ... et @working_directory. Pouvez-vous me dire ce qui ne va pas?aucune conversion implicite de symbole en entier, Ruby

Merci pour votre aide

class RubyCommand 
     include Patir::Command 
     attr_reader :cmd,:working_directory,:killProc 
     def initialize params,&block 
     @killProc=params[:killProc] 
     @name=params[:name] 
     @working_directory=params[working_directory]||"." 
     if block_given? 
      @cmd=block 
     else 
      raise "You Need to provide a block" 
     end 
     end 
    end 
+0

Ary vous passant des params comme 'Array' au lieu d'un' Hash' parce que 'Array # []' veut un entier. En supposant aussi que c'est une faute de frappe mais ruby ​​ne donne pas ** horloges ** – engineersmnky

Répondre

0

vous êtes assez sûr de passer un tableau au lieu d'un hachage. Vous devriez l'appeler comme ceci:

RubyCommand.new({killProc:1,name:"test"}) 
+0

Voici la partie où j'appelle RubyCommand. \t ip = "{} WAGO_IP" port = "{WAGO_PORT}" \t step.cmd = Litu :: RubyCommand.new ("switch_wago_do") faire | cmd, contexte | – shube

+0

@shube qui va le faire. Vous ne pouvez pas l'appeler avec un 'String'. 'String # []' recherche également une valeur entière. Cette réponse est plus ou moins correcte à part le fait que l'affiche n'incluait pas le bloc requis – engineersmnky